您好,登录后才能下订单哦!
今天小编给大家分享一下Golang中struct{}和struct{}{}的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
首先说下Golang中的结构体,结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,Golang中使用关键字struct来创建一个结构体,语法如下:
typeStudentstruct { Name string }
下面定义一个Student结构体,例如:
typeStudentstruct { name string }
然后声明一个Student类型的变量并赋值
var stu Student stu.name = "小明"
声明一个struct类型变量并赋值还有一种方式是使用匿名struct,代码非常简洁:
stu := struct { name string }{ "小明", }
还可以使用匿名struct声明一个变量但不赋值,例如:
stu := struct { }{ }
把空行和空格去掉后就是struct {} {},所以到此就可以看出struct {}和struct {} {}的区别了。
struct {}和struct { name string }一样是结构体类型, 只是没有任何元素。struct {}的特点是大小为0,不占用任何内存。
struct {} {}一个struct {}类型的值,该值也是空。
比如使用map类型构造集合,可以使用这样一个类型的map:map[string]struct{},使用struct{}类型的值来节省空间。
package main import"fmt"funcmain() { zoo := make(map[string]struct{}) zoo["monkey"] = struct{}{} zoo["tiger"] = struct{}{} _, ok := zoo["monkey"] fmt.Println("Is monkey in the zoo?", ok) _, ok = zoo["cat"] fmt.Println("Is cat in the zoo?", ok) }
运行程序,输出如下内容:
Ismonkeyinthezoo?trueIscatinthezoo?false
以上就是“Golang中struct{}和struct{}{}的区别是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。