登录
首页 >  Golang >  Go问答

使用GoLang构建空结构

来源:stackoverflow

时间:2024-02-15 21:06:21 326浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《使用GoLang构建空结构》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

谁能解释一下为什么会这样

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

是有效的 go 代码,但是这个

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

不是吗?看起来我可以在第一个语句中仅通过 {} 构建结构,但我需要在第二个语句中执行 struct{}{}


正确答案


这不是苹果对苹果。如果你尝试这样做,你会得到同样的错误:

package main

func main() {
   m := make(map[string]struct{})
   m["hello"] = {} // syntax error: unexpected {, expecting expression
}

至于你更大的问题,我相信这里已经有了答案[1]:

在数组、切片或映射类型 t 的复合文字中,本身是复合文字的元素或映射键可能会忽略相应的文字类型(如果它与 t 的元素或键类型相同)。

例如,如果您有一个复合文字:

map[string]struct{}

其中元素也是复合文字:

struct{}

然后你可以省略类型:

{}
  1. https://golang.org/ref/spec#Composite_literals

理论要掌握,实操不能落!以上关于《使用GoLang构建空结构》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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