如之前的帖子 https://www.v2ex.com/t/1063998#reply2 我用 gin 框架搭建了一个开箱即用的 api 框架, 现在问题是 db 里面字段可能为 null ,当用 gorm 查询结果的时候如果不好区分是 golang 默认的 0 值,还是 db 里面存储的是 null ,如 type User struct { Name string Age int },当然使用 type User struct { Name string Age *int }也能解决问题 github 发现一个库 https://github.com/guregu/null ,也能很好的解决 type User struct { Name string Age null.Int },看着也稍微优雅一些,但是使用的时候可能比较麻烦
user : = XXXX if user.Age.Valid { // todo something } 大家觉得哪个好一些
1
sunny352787 118 天前 1
我用指针,多引一个库就多一份麻烦,判断指针理解成本也很低,出 nil 没判断就用会 panic ,用库有人嫌麻烦就不判断反而掩盖了错误
|
2
body007 117 天前
|
3
james122333 117 天前 via Android
用指针 对反射来讲更友好
|
4
griffinx 117 天前
用指针来表示不存在是很常见的做法,比如 yaml/json 都可以这么搞
|