Вопрос: Как написать обобщённую функцию для map-keys и почему она не работала до generics?
Go
Junior
Без компании
Вопрос: Как написать обобщённую функцию для map-keys и почему она не работала до generics?
Ответы
До generics приходилось дублировать код под разные типы или использовать any и касты.
```go
package main
import "fmt"
func Keys[K comparable, V any](m map[K]V) []K {
res := make([]K, 0, len(m))
for k := range m {
res = append(res, k)
}
return res
}
func main() {
m := map[string]int{"a": 1, "b": 2}
fmt.Println(Keys(m))
}
```