新手在此:) 我听不懂
当我在一个文件中执行此操作时:
scratch.go
个
package main
import "fmt"
type foo struct {
field1 string
field2 string
}
type bar struct {
foo
field3 string
field4 string
}
func main() {
fooBar := bar{
foo{
"apples",
"banana",
},
"spam",
"eggs",
}
fmt.Printf("%#v\n", fooBar)
}
它起作用了 但当我有3个这样的文件时
rootproject
├── magazine
│ ├── address.go
│ └── employee.go
└── main.go
magazine/address.go
个
package magazine
type Address struct {
Street string
City string
State string
PostalCode string
}
magazine/employee.go
个
package magazine
type Employee struct {
Name string
Salary float64
Address
}
和
main.go
个
package main
import (
"fmt"
"magazine"
)
func main() {
employee := magazine.Employee{
Name: "pogi",
Salary: 69420,
magazine.Address{
Street: "23 pukinginamo st.",
City: "bactol city",
State: "betlog",
PostalCode: "23432",
},
}
fmt.Printf("%#v\n", employee)
}
错误:(
mixture of field:value and value elements in struct literal
我不明白,我做错了什么?我想如果该 struct 是嵌套的,那么它被称为嵌入在外部 struct 中,我可以从外部 struct 访问内部 struct 的字段.这是我的第一个示例(单数文件)的情况,但当我在包中执行时.不同吗?