V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
fxjson
V2EX  ›  Go 编程语言

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

  •  
  •   fxjson · 18 天前 · 1344 次点击

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

    4 条回复
    sunny352787
        1
    sunny352787  
       18 天前   ❤️ 1
    我用指针,多引一个库就多一份麻烦,判断指针理解成本也很低,出 nil 没判断就用会 panic ,用库有人嫌麻烦就不判断反而掩盖了错误
    body007
        2
    body007  
       18 天前


    如果只是处理数据库 null 字段,标准库有对应的结构体,无需引入三方库
    james122333
        3
    james122333  
       18 天前 via Android
    用指针 对反射来讲更友好
    griffinx
        4
    griffinx  
       17 天前
    用指针来表示不存在是很常见的做法,比如 yaml/json 都可以这么搞
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:31 · PVG 05:31 · LAX 14:31 · JFK 17:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.