在学习 Go 泛型时,我遇到了一个似乎无法解决的错误。我把它归结为最简单的代码:
type opStack[T any] []T
func main() {
t := make(opStack)
// t := new(opStack)
t = append(t, 0)
fmt.Println(t[0])
}
Run Code Online (Sandbox Code Playgroud)
在操场上,这会在调用时(以及在注释掉的调用make()上类似)出现问题,并显示以下错误消息:new
无法在没有实例化的情况下使用泛型类型 opStack[T any]
但是make()是一个实例化函数。所以,我希望我错过了一些语法上的微妙之处。Go 抱怨什么以及需要纠正什么?