【发布时间】:2021-09-05 12:54:49
【问题描述】:
如何构造通用结构?
我试过了:
type SafeSet[type T] struct {
Values map[T]bool
}
我希望能够做到例如
SafeSet{ Values: make(map[net.Conn]bool) }
SafeSet{ Values: make(map[string] bool) }
SafeSet{ Values: make(map[int] bool) }
【问题讨论】:
-
现在,使用 Go 1.17 及更早版本您不能。明年试试,当泛型添加到 Go 1.18 时。
-
@mkopriva 你建议一个人做什么?重复例如每种类型的
SafeSet? -
type SafeSet map[interface{}]interface{} ; x := make(SafeSet)? -
@SebastianNielsen 是的,如果这是我需要的,我会这样做。标准库中有类似的例子,比如
database/sql中的NullXxx类型。