V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
fxjson

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

  •  
  •   fxjson · Sep 1, 2024 · 2437 views
    This topic created in 603 days ago, the information mentioned may be changed or developed.

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

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


    如果只是处理数据库 null 字段,标准库有对应的结构体,无需引入三方库
    james122333
        3
    james122333  
       Sep 2, 2024 via Android
    用指针 对反射来讲更友好
    griffinx
        4
    griffinx  
       Sep 2, 2024
    用指针来表示不存在是很常见的做法,比如 yaml/json 都可以这么搞
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3164 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 14:31 · PVG 22:31 · LAX 07:31 · JFK 10:31
    ♥ Do have faith in what you're doing.