GoLang 空结构构造

有人可以解释为什么

m := map[string]struct{}{"hello": {}}

是有效的代码,但是这个

c := make(chan struct{}, 1)
c <- {}

不是?似乎我可以{}在第一个语句中构建结构,但我需要struct{}{}为第二个语句做。


繁星coding
浏览 91回答 1
1回答

牛魔王的故事

这不是苹果对苹果。如果你尝试这个,你会得到同样的错误:package mainfunc main() {&nbsp; &nbsp;m := make(map[string]struct{})&nbsp; &nbsp;m["hello"] = {} // syntax error: unexpected {, expecting expression}至于你更大的问题,我相信这里已经回答了[1]:在数组、切片或映射类型的复合文字中T,本身是复合文字的元素或映射键可以省略相应的文字类型,如果它与 的元素或键类型相同T。例如,如果您有一个复合文字:map[string]struct{}其中元素也是复合文字:struct{}然后你可以省略类型:{}https://golang.org/ref/spec#Composite_literals
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go