美文网首页
go 空结构体 struct{}的应用

go 空结构体 struct{}的应用

作者: Newzer | 来源:发表于2022-11-09 16:55 被阅读0次

    go空结构体的广泛应用得益于go空结构体不占用任何内存
    一个类型的宽度是该类型的实例所占有的存储空间的字节数

    一个类型的宽度 = unsafe.Sizeof( type )
    其他任意数据类型的宽度都不等于0,任何空结构体之间的嵌套也都是0

    用途1:可以作为方法的接收器来实现零成本的方法分组,便于后期扩展

    用途2:可以实现类似集合的功能,定一个空结构体的map,把元素作为key, struct{} 作为值放进去,因为map的key是唯一的,所以可以实现集合元素的唯一性,并且这个 map 的大小也是最小的,因为值为空结构体,不占内存,只占位

    用途3:可以定义一个struct{} 的channel ,利用协程阻塞来使协程串行化

    相关文章

      网友评论

          本文标题:go 空结构体 struct{}的应用

          本文链接:https://www.haomeiwen.com/subject/fpxntdtx.html