我有此代码:
var user person.Model;
json.NewDecoder(r.Body).Decode(&user)
if user.Handle == "" || user.Email == "" {
panic(utils.AppError{
StatusCode: 409,
Message: "Missing handle/email property in request body.",
})
}
if v.PeopleByHandle[user.Handle] != nil {
}
person.Model是一个结构,但出现此错误:
无法将nil转换为更多Model类型
我尝试了一些&和*技巧,但是我无法编译它-有人知道如何正确执行此操作吗?
person.Model结构类似于:
type Model struct {
ID int `json:"id, omitempty"`
Handle string `json:"handle, omitempty"`
Role string `json:"role, omitempty"`
Password string `json:"password, omitempty"`
Work string `json:"work, omitempty"`
Image string `json:"image, omitempty"`
Firstname string `json:"firstname, omitempty"`
Lastname string `json:"lastname, omitempty"`
Phone string `json:"phone, omitempty"`
Email string `json:"email, omitempty"`
}
答案 0 :(得分:1)
您的问题尚不清楚。如果要将结构与nil进行比较,则变量应为指针,因为struct的零值是空结构,而指针的零值为nil。
但是,如果您要检查地图中的键,可以执行以下操作:
if obj,ok := v.PeopleByHandle[user.Handle] ;ok {
// Found
}