Mic*_*ang 4 struct go
众所周知,以大写字母开头的字段是公共字段,非大写字母开头的字段是私有字段。但Golang也支持匿名字段。例如:
type myType struct { string }
这些字段是为Embedding设计的。但这个领域是公共的还是私有的?
小智 5
根据结构类型规范:
使用类型声明但没有显式字段名称的字段称为嵌入字段。嵌入字段必须指定为类型名称 T 或指向非接口类型名称 *T 的指针,并且 T 本身可能不是指针类型。非限定类型名称充当字段名称。
的不合格名称string是string。
string
根据导出标识符的规范:
可以导出标识符以允许从另一个包访问它。如果满足以下条件,则导出标识符: 标识符名称的第一个字符是 Unicode 大写字母(Unicode 字符类别 Lu);和 标识符在包块中声明,或者是字段名称或方法名称。
可以导出标识符以允许从另一个包访问它。如果满足以下条件,则导出标识符:
的第一个字符string不是 Unicode 大写字母。
由此可见,嵌入字段不会被导出。换句话说,它是包私有的。
归档时间:
2 年,4 月 前
查看次数:
164 次
最近记录: