美文网首页
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{}的应用

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

  • 《Go语言四十二章经》第十八章 Struct 结构体

    《Go语言四十二章经》第十八章 Struct 结构体 作者:李骁 18.1结构体(struct) Go 通过结构体...

  • go结构体(struct)和方法(method)

    结构体(struct) go中没有对象这一概念,所以采用了结构体的概念,结构体在go中有着非常重要的位置。结构体是...

  • golang继承与接口

    继承 结构体 Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继 承...

  • go语言的结构体(struct)

    简单介绍下结构体struct: type name struct {xx1 类型xx2 类型...} 结果: go...

  • GO语言学习

    go语言的结构体 声明:type 结构体名 struct{x,y int}初始化:未显示初始化结构体变量的,初始值...

  • 十.Go结构struct

    结构struct Go中的struct与C中的struct相似,并且go没有class 使用type 结构名称 s...

  • Go语言面向对象三大特性—继承

    Go语言里靠匿名结构体实现继承,嵌入到新的结构体里面。如果一个struct嵌套了另一个匿名结构体,那么这个结构体可...

  • Go 语言结构体(struct)

    定义数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不...

  • Go语言之结构体嵌套

    Go语言之结构体嵌套 在type Student2 struct结构体中,注意book参数引用的是地址,方便修改数据

网友评论

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

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