Slide 25
Slide 25 text
interface{ … }の省略
■ 制約で省略して記述できる
● https://go.dev/issue/48424
● constraintsパッケージで提供する制約を減らせる
○ 新しく導入される制約を提供するパッケージ
// interface{ ~map[K] V }を~map[K] Vと書ける
func Keys[M ~map[K]V, K comparable, V any](m M) []K {
keys := make([]K, 0, len(m))
for k := range m { keys = append(keys, k) }
return keys
}
func main() {
m := url.Values{"a":{"v1"}, "b":{"v2"}}
fmt.Println(Keys(m)) // [a b]
}
Playgroundで動かす