Golang空结构体struct{}用途,你知道吗
作者:罗奇正 时间:2024-04-26 17:36:56
golang 空结构体 struct{} 可以用来节省内存
a := struct{}{}
println(unsafe.Sizeof(a))
// Output: 0
理由如下:
如果使用的是map,而且map又很长,通常会节省不少资源
空struct{}也在向别人表明,这里并不需要一个值
本例说明在map里节省资源的用途:
set := make(map[string]struct{})
for _, value := range []string{"apple", "orange", "apple"} {
set[value] = struct{}{}
}
fmt.Println(set)
// Output: map[orange:{} apple:{}]
下例,演示了struct{}可以向人展示对象中不需要任何数据,仅包含需要方法。在调用也并无任何区别
type Lamp struct{}
func (l Lamp) On() {
println("On")
}
func (l Lamp) Off() {
println("Off")
}
func main() {
// Case #1.
var lamp Lamp
lamp.On()
lamp.Off()
// Output:
// on
// off
// Case #2.
Lamp{}.On()
Lamp{}.Off()
// Output:
// on
// off
}
还有其他情况,比如有时候使用channel,但并不需要附带任何数据。
func worker(ch chan struct{}) {
// Receive a message from the main program.
<-ch
println("roger")
// Send a message to the main program.
close(ch)
}
func main() {
ch := make(chan struct{})
go worker(ch)
// Send a message to a worker.
ch <- struct{}{}
// Receive a message from the worker.
<-ch
println(“roger")
// Output:
// roger
// roger
}
来源:https://blog.csdn.net/weixin_44328662/article/details/86501900
标签:Golang,空结构体,struct{}
0
投稿
猜你喜欢
详解TensorFlow在windows上安装与简单示例
2021-06-01 23:54:31
MySQL5.7 windows二进制安装教程
2024-01-24 04:10:01
python PyAUtoGUI库实现自动化控制鼠标键盘
2022-07-07 16:47:41
详解Python的基础语法和变量操作
2021-10-13 17:07:54
原生Javascript插件开发实践
2024-04-17 09:43:45
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2022-07-06 16:40:59
AJAX概述
2007-11-03 13:41:00
Python实现完整的事务操作示例
2023-11-15 21:02:02
python实现简单登陆流程的方法
2021-01-30 00:48:24
Python hashlib模块加密过程解析
2021-09-08 13:29:25
一文详解websocket在vue2中的封装使用
2024-05-02 17:08:54
Win10下安装CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+paddlepaddle-gpu2.0.0
2022-05-08 19:29:32
Python之lambda匿名函数及map和filter的用法
2021-01-14 02:11:18
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2022-02-05 15:27:10
js中json处理总结之JSON.parse
2024-03-28 22:06:31
用Python编写生成树状结构的文件目录的脚本的教程
2022-12-26 09:54:52
Python实现的弹球小游戏示例
2022-06-04 01:15:35
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2024-02-24 03:33:08
基于Python实现签到脚本过程解析
2023-01-13 03:14:56
AI经典书单 人工智能入门该读哪些书?
2023-06-24 07:11:00