登录
首页 >  Golang >  Go问答

Golang 中的 {} 是什么?

来源:stackoverflow

时间:2024-03-09 15:54:25 376浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《Golang 中的 {} 是什么?》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我在讲义中发现了这一点:

setcollection := map[string]struct{}{
        "uniqelement1": {},
        "uniqelement2": {},
        "uniqelement3": {},
}

据我了解,这里的 {} 代表空结构,但我以前从未见过这个。这是否总是意味着空结构?另外,我们什么时候可以使用这个表示法?此代码不起作用:

setCollection["newElem"] = {}

正确答案


{}composite literal values 的语法要求。

您的第一个示例使用复合文字来创建映射值,并且在该文字内使用其他结构文字作为映射的键值。并且规范允许省略内部文字中的内部类型:

您的第二个示例尝试不在复合文字中使用 {},并且编译器不知道您要使用什么类型。所以这是一个编译时错误。在第二个例子中你必须明确:

setCollection["newElem"] = struct{}{}

其中 struct{} 是类型,struct{}{} 是复合文字值(类型为 struct{})。

查看相关:How do struct{} and struct{}{} work in Go?

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>