php中文网

Golang泛型:如何实例化嵌套泛型类型?

php中文网

golang 泛型中嵌套泛型的实例化

在golang的泛型特性中,开发者可以创建泛型类型,通过为类型参数提供所需类型信息来实例化它们。然而,涉及到嵌套泛型时,实例化可能会带来一些疑惑。

问题:

如何实例化如下所示的嵌套泛型类型?

立即学习“go语言免费学习笔记(深入)”;

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

答案:

要实例化嵌套泛型类型,需要指定内部泛型类型的具体类型以及外部泛型类型的具体类型。以下代码展示了如何实例化指定的嵌套泛型类型:

package main

import "fmt"

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

func main() {
    // 实例化一个其内部泛型类型为string的wowmap[string]
    a := wowmap[string]{"123": slice[string]{"1"}}

    // 实例化一个其内部泛型类型为int的wowmap[int]
    b := wowmap[int]{"123": slice[int]{1}}

    fmt.println(a, b)
}

输出:

map[123:[1]] map[123:[1]]

此代码创建一个内部泛型类型为string的"wowmap[string]"实例"a"和一个内部泛型类型为int的"wowmap[int]"实例"b"。然后,它打印出这两个变量的内容。

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