конкуррентности Вызвать множество функций параллельно и получить список результатов Читать из канала до таймаута Обобщенные структуры данных Sets Trees Потокобезопасные структуры данных
Добавление дженериков не должно добавлять сложности пользователю И быстрая компиляция и быстрый рантайм Go должен оставаться Go Информация о типах и в рантайме и при компиляции
концепция контрактов Есть type inference Нет специализаций Нет возможности метапрограммирования Нет variadic templates Из функций будет генериться одна версия для всех типов В отличие от Java : Нет type erasure Нет covariance / contravariance Из типов будут генериться несколько версий для каждого типа
Объявлять переменные обобщенного типа Присваивать им значения того же типа Передавать их в функции или возвращать из функций Брать адрес Создавать слайсы/мапы
посвященная последней версии драфта https://go.googlesource.com/proposal/+/master/design/go2draft-generics- overview.md Имплементация поддержки контрактов (в процессе)