用于泛型类型的golang零值



我正在测试golang的1.18beta2版本。我有这个功能:


func Do[T any](value T) (T, bool) {
if guardCondition {
return nil, false // Complains about "cannot use nil as T value in return statement"
}
... // rest of function
}

由于不能在返回语句中使用nil作为T值,因此它将不兼容。通常情况下,您会返回一个指针或任何";可幂的";类型然而,当使用泛型时,似乎没有任何类型可以反编译。我找不到任何在线资源来处理任何类型的这个例子。

好吧,刚刚试用

func Do[T any](value T) (T, bool) {
if guardCondition {
var noop T
return noop, false
}
... // rest of function
}

这就是诀窍:(

最新更新