gpt4 book ai didi

go - 如何检查结构中的 bool 是否已更改为 false 或者它是否已经为 false

转载 作者:IT王子 更新时间:2023-10-29 02:26:16 25 4
gpt4 key购买 nike

type user_account struct {
ID string `sql:"type:uuid;default:uuid_generate_v4()"`
Gender_Identity_id string `sql:"type:uuid;default:uuid_generate_v4()"`
Email string
Name string
LastName string
Password string
BirthDate string `sql:"type:date;default:current_time"`
AssignedSex bool
Show bool
Sleep bool
Disabled bool
}

如果您发送一个 user_account 对象而没有将 sleep 值设置为 true ,该值将自动为 false 我需要知道该值是否实际设置为 false 或者它是否为 false 因为它尚未设置

func UpdateUser(userUpdate user_account) {

db, err := gorm.Open("postgres", "user=postgres password=06maneco dbname=HookTest sslmode=disable")
var user user_account

if err != nil {
fmt.Println(err)
} else {

db.Where("id = ?", userUpdate.ID).First(&user)
if userUpdate.Name != user.Name {
user.Name = userUpdate.Name
} else if userUpdate.Password != "" {
user.Password = userUpdate.Password
} else if userUpdate.Gender_Identity_id != "" {
user.Gender_Identity_id = userUpdate.Gender_Identity_id
} else if userUpdate.Email != "" {
user.Email = userUpdate.Email
} else if userUpdate.Show != user.Show {
user.Show = userUpdate.Show
}
db.Save(&user)

}

最佳答案

对于 Sleep 字段,您可以使用一个指针,它也可以是 nil:

type userAccount struct {
Sleep *bool
}

现在你可以检查它了:

func check(u userAccount) {
if u.Sleep == nil {
// not set
} else if !(*u.Sleep) {
// set to false
} else {
// set to true
}
}

在 Playground 中查看:https://play.golang.org/p/8EIs_yIC0mw .

关于go - 如何检查结构中的 bool 是否已更改为 false 或者它是否已经为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49139532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com