Golang中struct{}和struct{}{}的区别解析
作者:路多辛 时间:2024-04-23 09:36:21
首先说下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 {}和struct { name string }一样是结构体类型, 只是没有任何元素。struct {}的特点是大小为0,不占用任何内存。
struct {} {}
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
来源:https://blog.csdn.net/luduoyuan/article/details/129095066
标签:go,struct{},struct{}{}
0
投稿
猜你喜欢
js金额浮点格式化控件
2008-08-01 16:52:00
python3写的简单本地文件上传服务器实例
2023-08-23 02:50:58
php中session使用示例
2024-04-30 08:46:58
python rolling regression. 使用 Python 实现滚动回归操作
2021-01-11 09:38:07
在python tkinter中Canvas实现进度条显示的方法
2023-06-04 18:12:56
python求平均数、方差、中位数的例子
2022-08-23 21:24:57
当设计师遇上前端开发
2009-05-04 14:05:00
Mootools 1.2教程(8)——输入过滤第一部分(数字)
2008-11-27 13:01:00
关于Python函数参数的进阶用法
2023-10-06 12:03:41
使用Python生成随机密码的示例分享
2023-05-23 11:32:10
python实现SMTP邮件发送功能
2023-11-11 08:04:03
Python OpenGL绘制一场烟花盛会
2021-02-08 06:12:44
Access2003:不支持这种ActiveX控件
2010-12-09 19:59:00
利用CSS属性实现进度条的方式
2010-02-25 12:31:00
参数传递解决window.open的session变量丢失
2007-10-22 17:40:00
UEditor 编辑器跨域上传解决方法
2022-09-07 11:52:41
Javascript优化五大原则
2007-10-30 13:49:00
在SQL查询中使用LIKE来代替IN查询的方法
2011-09-30 11:10:18
基于Python实现网页文章转PDF文档
2022-08-23 08:50:17
SQL server分页的4种方法示例(很全面)
2024-01-27 15:09:47