Go语言 具有两个泛型类型的方法

waxmsbnn  于 2023-02-17  发布在  Go
关注(0)|答案(1)|浏览(132)

我想写一个泛型函数,看起来像这样:

func Transform(a A) B

...其中A和B都是泛型类型。
如果我只有一个泛型类型,我可以这样做:

func Transform[A SomeType | SomeOtherType](a A) B

但是我如何定义B类型呢?
这是行不通的:

func Transform[A SomeType | SomeOtherType][B SomeThirdType](a A) B
w8f9ii69

w8f9ii691#

当一个函数有多个参数时,你该怎么做?你用 * 逗号 * 分隔列出它们。当一个函数有多个类型参数时,你该怎么做?是的,你用 * 逗号 * 分隔列出它们:

func Transform[A SomeType | SomeOtherType, B SomeThirdType](a A) B

详见规范:类型参数声明:

TypeParameters  = "[" TypeParamList [ "," ] "]" .

相关问题