package main
import "fmt" type myType struct { string } func main() { obj := myType{"Hello World"} fmt.Println(obj) }
结构中无名字段的目的是什么?
是否可以像使用命名字段一样访问这些字段?
请参阅“ 在Go中嵌入 ”:您在结构中嵌入了一个匿名字段:通常与嵌入式结构一起使用,而不是像这样的基本类型string。该类型没有要显示的“提升字段”。
string
字段或方法f在一个结构匿名字段的x被称为 促进 如果x.f是一个合法的选择器,它表示字段或方法f。 提升的字段的作用类似于结构的普通字段,只是它们不能用作结构的复合文字中的字段名称。
字段或方法f在一个结构匿名字段的x被称为 促进 如果x.f是一个合法的选择器,它表示字段或方法f。
f
x
x.f
提升的字段的作用类似于结构的普通字段,只是它们不能用作结构的复合文字中的字段名称。
(这里string本身没有字段)
请参阅“ 何时使用指针嵌入”中的类型嵌入示例。
A fmt.Println(obj.string)将返回Hello World而不是{Hello World}。
fmt.Println(obj.string)
Hello World
{Hello World}