结构{}空结构体怎么在Golang中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Golang空结构体结构{}可以用来节省内存
a :=, struct {} {} println (unsafe.Sizeof (a))//输出:祝福;0
理由如下:
- <李>
如果使用的是地图,而且地图又很长,通常会节省不少资源
李> <李>空结构{}也在向别人表明,这里并不需要一个值
李>本例说明在地图里节省资源的用途:
set :=, (map [string]结构{}) for _, value :=, range []字符串{“apple",,“orange",,“apple"}, { 设置(价值),才能=,struct {} {} } fmt.Println(套)//,输出:地图(橙色:{},苹果:{}]
下例,演示了结构{}可以向人展示对象中不需要任何数据,仅包含需要方法。在调用也并无任何区别
type Lamp 结构{} func (l 灯),(),{ ,,,println(“知道) } func (l 灯),(),{ ,,,println (“Off") } func main (), { ,,,//Case # 1。 ,,,var lamp 灯 ,,,lamp.On () ,,,lamp.Off () ,,,//,输出: ,,,//上 ,,,//了 , ,,,//Case # 2。 ,,,灯{}内() ,,,灯{}.Off () ,,,//,输出:, ,,,//上 ,,,//了 }
还有其他情况,比如有时候使用通道,但并不需要附带任何数据。
func 工人(ch chan 结构{}),{ ,//Receive a  message 得到,main 程序。 & lt; ch ,println (“roger") , ,//Send a  message 用,main 程序。 ,关闭(ch) } func main (), { ,ch :=, (chan 结构{}) ,go 工人(ch) , ,//Send a  message 用a 工人。 ,ch & lt;作用;结构{}{} , ,//Receive a  message 得到,工人。 & lt; ch ,println (“roger") ,//输出: ,//罗杰 ,//罗杰 }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。