go2go.playground - 预期类型,发现 'type'(还有 1 个错误)

go2go.playground - expected type, found 'type' (and 1 more errors)

我尝试 运行 来自 design draft (The Next Step for Generics) 的示例 go2go.playground

type Pair(type T) struct { f1, f2 T }

,却报错

prog.go2:14:11: expected type, found 'type' (and 1 more errors)

我在哪里可以找到实际的 go generics design draft

这是几周前的旧语法。尝试

type Pair[T any] struct { f1, f2 T }

请注意,现在使用方括号代替圆括号,并且不再使用 type 关键字。您还必须使用 any 约束,而以前如果对类型参数没有限制,您可以忽略该约束。

顺便说一句,通常 Pair 指的是 2 个字段具有 2 种不同类型的结构,例如 type Pair[T1, T2 any] struct { first T1; second T2 }

有关构建的示例代码,请参阅 go2go Playground

如2019年设计稿第一段所述,新稿为https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md

您正在查看过时的设计稿。

这是最新的:https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md

所以,不是:

type Pair(type T) struct { f1, f2 T }

但是:

type Pair[T any] struct { f1, f2 T }