Go 泛型嵌套类型如何实例化?

go 泛型嵌套类型如何实例化?

golang泛型嵌套的问题

go语言引入了泛型后,嵌套泛型类型时可能会遇到一些困惑,比如以下代码:

type slice[t int | string | float32 | float64] []t

type wowmap[t int | string] map[string]slice[t]

这里嵌套了两个泛型类型,那么如何实例化这个嵌套的map呢?

根据泛型的规则,嵌套泛型类型需要指定最外层类型的参数,才能确定最内层类型的参数。因此,实例化wowmap时,需要先指定最外层泛型参数t,再指定最内层泛型参数t。

以下是实例化的代码:

a := WowMap[string]{"123": Slice[string]{"1"}}
b := WowMap[int]{"123": Slice[int]{1}}
fmt.Println(a, b)

这样就可以正确地实例化嵌套泛型类型wowmap。

以上就是Go 泛型嵌套类型如何实例化?的详细内容,更多请关注其它相关文章!