gpt4 book ai didi

go - 如何通过初始化是否确定struct的字段为零值?

转载 作者:行者123 更新时间:2023-12-01 22:41:26 25 4
gpt4 key购买 nike

我在某些条件下可以进行动态查询,未设置值将被忽略。但是我很困惑如何确定值是否为零(是通过输入(用户)还是不是(为我们设置golang))
例如:

type User struct {
Age int
}
user := User{ Age : 0 } // query := `Where age = ... `
user := User{} // query := ``
我之前使用过指针和json,它可以工作,但是在这种情况下,我无法更改struct结构。
type User struct {
Age *int `json:"age"`
}
user :=User{}
if user.Age == nil { //not set }
有人可以给我想法或关键字吗?谢谢

最佳答案

map[string]interface的替代方法是具有包装类型(如果可能的话):


type UserWrapper {
user User
ageDirty bool
}

func (u UserWrapper) SetAge(age int) {
u.ageDirty = true
u.user.Age = age
}

func (u UserWrapper) GetAge() int {
return u.user.Age
}

func (u UserWrapper) AgeSet() bool {
return u.ageDirty
}

即使直接更改结构更好,也可以使意图更清晰

关于go - 如何通过初始化是否确定struct的字段为零值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62860743/

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