在学习Go泛型时,我遇到了一个似乎无法解开的错误.我把它归结为最简单的代码:
type opStack[T any] []T
func main() {
t := make(opStack)
// t := new(opStack)
t = append(t, 0)
fmt.Println(t[0])
}
在操场上,这会在make()
次呼叫时发出砰砰声(同样在被注释掉的new
次呼叫时),并显示以下错误消息:
在没有实例化的情况下,无法使用泛型类型opStack[T any]
但是make()
是一个实例化函数.所以,我想我遗漏了一些句法上的微妙之处.Go抱怨的是什么?需要纠正的是什么?