В языке Go наконец-то появятся дженерики. Proposal принят

от автора

Как сообщает телеграм-канал Cross Join, предложение по добавлению дженериков в Go наконец-то приняли.

Ссылка на сам документ здесь: type parameters.

type Stringer interface {     String() string }  type Plusser interface {     Plus(string) string }  func ConcatTo[S Stringer, P Plusser](s []S, p []P) []string {     r := make([]string, len(s))     for i, v := range s {         r[i] = p[i].Plus(v.String())     }     return r }

Принятие proposal означает, что скорее всего в 1.18beta можно будет эту функциональность уже попробовать.

Цитата из официального блога:

If the proposal is accepted, our goal will be to have a complete, though perhaps not fully optimized, implementation for people to try by the end of the year, perhaps as part of the Go 1.18 betas.

Т.е. разработчики языка постараются сделать какой-то рабочий вариант до конца года. Он возможно, будет не слишком оптимизированный, но можно будет уже поиграться.

Примеры использования

Поздравляем всех гоферов с этой отличной новостью!


ссылка на оригинал статьи https://habr.com/ru/articles/541958/