https://stackblitz.com/edit/typescript-zlwtyj 如何才能像 ts 这样判断值
struct 中的 int 值初始化为 0,string 值初始化是"",这样子怎么判断接口有没有传进来啊,因为接口也是可以接收 0 和空字符串的
1
thefack 2020-06-20 11:13:04 +08:00
加个状态变量
|
2
felix021 2020-06-20 11:26:08 +08:00 via Android
struct 的成员用指针
struct{ Ts *int } |
3
scnace 2020-06-20 11:26:37 +08:00 via Android
用*int 和 *string (逃
|
5
kaifang 2020-06-20 13:05:20 +08:00
也可以用校验器校验 https://github.com/go-playground/validator 。
type user struct{ id int `validate:"required"` name string `validate:"required"` age int `validate:"required,min=16,max=100"` } validate := validator.New() if err := validate.Struct(user); err == nil { fmt.Println("校验成功") } else { fmt.Println("校验失败") } |
6
wunonglin OP @kaifang #5 因为是做 update,传入字段是动态的,所以不能用 required 只能用上面 2 、3 楼的指针了。要是是 create 的话那就可以用 required
|
7
RH 2020-06-20 21:03:14 +08:00
也可以尝试用这个 github.com/guregu/null
|
8
joesonw 2020-06-21 13:53:50 +08:00
所以你看到很多库, 例如 aws, 传参都是 *string, *int
|