首先澄清一下标题,我知道 Go 中没有接口文字这样的东西,但我无法为这个问题想出另一个名字。
我正在阅读一些 Go 代码并发现了一个奇怪的结构,如下所示:
clientOptions := []grpc.DialOption{grpc.WithInsecure()}
cc, err := grpc.Dial(l.Addr().String(), clientOptions...)这里 grpc.DialOptions 是一个接口类型,而 grpc.WithInsecure() 返回该类型。在这里引起我注意的是 clientOptions 是一个切片,这对我来说似乎是多余的。所以我尝试像这样删除大括号:
clientOptions := grpc.DialOption{grpc.WithInsecure()}但我得到编译错误:“无效的复合文字类型 grpc.DialOption”
我试图在 go 操场上模拟这个,我得到了相同的结果。此代码运行良好: https ://go.dev/play/p/QJQR9BDGN4a
但是这个版本失败了,同样的“无效的复合文字类型错误”: https ://go.dev/play/p/A0FasDybUg5
有人可以解释一下吗?谢谢
MMMHUHU
大话西游666
随时随地看视频慕课网APP
相关分类