package main
import "fmt"
type myType struct {
string
}
func main() {
obj := myType{"Hello World"}
fmt.Println(obj)
}
struct 中的无名字段有什么用途?
可以像访问命名字段一样访问这些字段吗?
package main
import "fmt"
type myType struct {
string
}
func main() {
obj := myType{"Hello World"}
fmt.Println(obj)
}
struct 中的无名字段有什么用途?
可以像访问命名字段一样访问这些字段吗?
参见"Embedding in Go ":您嵌入了anonymous field in a struct:这通常与嵌入的 struct 一起使用,而不是像string
这样的基本类型.该类型没有要公开的"升级字段".
如果
x.f
是表示匿名字段的字段或方法f
的合法 Select 器,则 structx
中的匿名字段的字段或方法f
被称为promoted.提升字段的作用与 struct 的普通字段相似,不同之处在于它们不能用作 struct 的复合文字中的字段名.
(这里string
本身没有字段)
请参阅"Embeddding when to use pointer"中嵌入类型的示例.
是否可以像访问命名字段那样访问这些字段?
fmt.Println(obj.string)
将返回Hello World
,而不是{Hello World}
.