```go
type User struct {
username string
}
type Dep struct {
Id int64
user *User
}
var dep Dep
```
声明的时候User指针为nil无法被赋值,这种结构体怎么先声明在调用它内部的User指针,不能使用初始化.
dep.user.username = "xxxx"
如果user是从别的地方创建后再赋值到Dep,上面把user定义为指针才合适,
如果是初始化Dep的时候就要给user的成员赋值,那就把Dep定义成下面这样:
type Dep struct {
Id int64
user User
}
如果一定要按照你那样定义并且初始化Dep时就给user的成员赋值,一般是这样写:
dep := &Dep{
user: &User{
username: "xxxx",
},
}
#4
更多评论
在 声明 var dep Dep 的时候 user是一个空指针,
调用dep.user.username = "xxxx" 会报错
#2