go empty struct和interface

  1. struct{}
  2. interface{}

struct{}

struct{}类型的占用内存大小为0:

unsafe.Sizeof(struct{}{})
//输出结果:0
  • 空结构体不占用空间(The empty struct consumes no storage)
  • 空结构体的切片只占用切片头的空间(Slices of struct{}s consume only the space for their slice header)
  • 用于控制而非数据信息:chan struct{}
  • 实现C++的set:map[string]struct{}

interface{}

空interface没有方法,故所有类型均实现了interface(包括值接收者和指针接收者);


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至yj.mapple@gmail.com

文章标题:go empty struct和interface

文章字数:113

本文作者:melonshell

发布时间:2020-07-01, 19:48:32

最后更新:2020-10-04, 13:36:45

原始链接:http://melonshell.github.io/2020/07/01/go16_empty_struct_interface/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

相册