golang 方案咨询,用指针类型*T 好还是用第三方库

74 天前
 fxjson

如之前的帖子 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 } 大家觉得哪个好一些

1524 次点击
所在节点    Go 编程语言
4 条回复
sunny352787
74 天前
我用指针,多引一个库就多一份麻烦,判断指针理解成本也很低,出 nil 没判断就用会 panic ,用库有人嫌麻烦就不判断反而掩盖了错误
body007
74 天前


如果只是处理数据库 null 字段,标准库有对应的结构体,无需引入三方库
james122333
73 天前
用指针 对反射来讲更友好
griffinx
73 天前
用指针来表示不存在是很常见的做法,比如 yaml/json 都可以这么搞

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1069353

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX