|
The problem is that with current proposal Go severely lacks type inference, required for generics to look nice and clean. A lot of the information is already in the definitions, there's no reason to repeat it, but Go chose to do that. // Reduce reduces a []T1 to a single value using a reduction function.
func Reduce(type T1, T2)(s []T1, initializer T2, f func(T2, T1) T2) T2 {
s := []int{1, 2, 3}
sum := slices.Reduce(s, 0, func(i, j int) int { return i + j })
and the example from referenced article is even more outrageous t1 := hashtable.New(string, int)(8, func(key string, m int) int {
We have function types literally at the same exression, but Go requires to repeat it. |
It does not require it, the author chose to do it.
is perfectly valid.https://go2goplay.golang.org/p/SbEXpyVl-V3