英文:
How to check for &{<nil> } in golang
问题
我正在尝试检查从数据库查询中的结构体是否为nil,但是它没有起作用。
fmt.Println(loginResponse) // &{<nil> }
if !reflect.ValueOf(loginResponse).IsNil() { // 这个条件不起作用
response := models.Response{
Message: "登录成功",
Success: true,
Output: token,
}
return c.JSON(response)
}
if !reflect.ValueOf(loginResponse).IsZero() { // 这个条件也不起作用
response := models.Response{
Message: "登录成功",
Success: true,
Output: token,
}
return c.JSON(response)
}
这两个条件都不起作用。请帮忙看看。
登录响应结构体如下:
type LoginResponse struct {
Id interface{} `json:"_id,omitempty" bson:"_id,omitempty"`
Email string `json:"email"`
Gender string `json:"gender"`
PhoneNumber string `json:"phonenumber"`
}
希望对你有帮助!
英文:
I am trying to check whether the struct is nil or not from the db query but its not working.
fmt.Println(loginResponse) //
&{<nil> }
if !reflect.ValueOf(loginResponse).IsNil() { // Its not working
response := models.Response{
Message: "Login Success",
Success: true,
Output: token,
}
return c.JSON(response)
}
if !reflect.ValueOf(loginResponse).IsZero() { // its also not working
response := models.Response{
Message: "Login Success",
Success: true,
Output: token,
}
return c.JSON(response)
}
Both the conditions are not working .Please help
Login response
type LoginResponse struct {
Id interface{} `json:"_id,omitempty" bson:"_id,omitempty"`
Email string `json:"email"`
Gender string `json:"gender"`
PhoneNumber string `json:"phonenumber"`
}
答案1
得分: 1
尝试这样做,希望能够成功:
if (LoginResponse{}) != *loginResponse { // 由于获取的是结构体指针的地址,所以需要解引用
response := models.Response{
Message: "登录成功",
Success: true,
Output: token,
}
return c.JSON(response)
}
英文:
Try doing this ,hopefully it works
if (LoginResponse{}) != *loginResponse { // as your getting address so derferencing the pointer to struct
response := models.Response{
Message: "Login Success",
Success: true,
Output: token,
}
return c.JSON(response)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论