struct

作者: 我帅的不忍直视 | 来源:发表于2023-11-23 19:13 被阅读0次

匿名结构体

适用于临时数据存储


空结构体

不占用内存空间,不同的空结构体对象内存地址相同,

varvstruct{}

fmt.Println(unsafe.Sizeof(v))//0

v1 :=struct{}{}

fmt.Println(unsafe.Sizeof(v1))/

Ageint

}

fmt.Println(v)

使用场景:

利用 Map 来实现 Set,key存储需要的数据,value是个空结构体。

channel传递信号。

实现方法接收者

在业务场景下,我们需要将方法组合起来,代表其是一个 ”分组“ 的,便于后续拓展和维护。

但是如果我们使用:

typeTstring

func(s *T)Call()

又似乎有点不大友好,因为作为一个字符串类型,其本身会占据定的空间。

这种时候我们会采用空结构体的方式,这样也便于未来针对该类型进行公共字段等的增加。如下:

typeTstruct{}

func(s *T)Call() {

fmt.Println("脑子进煎鱼了")

}

funcmain(){

vars T

 s.Call()

}

在该场景下,使用空结构体从多维度来考量是最合适的,易拓展,省空间,最结构化。

相关文章

网友评论

      本文标题:struct

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