结构体{}空结构体怎么在Golang中使用

  

结构{}空结构体怎么在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")   ,//输出:   ,//罗杰   ,//罗杰   }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

结构体{}空结构体怎么在Golang中使用