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 }
我尝试 运行 来自 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 }