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

新手请教一个问题

  •  
  •   niceTeen84 · 2022-09-28 11:33:22 +08:00 · 1895 次点击
    这是一个创建于 784 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代码如下:

    type Man struct {
    	Name *string
    	Age *uint8
    }
    
    func main() {
    	// 需要先声明字段的值
    	name := "tom"
    	var age uint8 = 18
        // 然后再取地址赋给结构体字段
    	man := Man{Name: &name, Age: &age}
    	fmt.Println(man)
    }
    

    我在为结构体的指针类型字段赋值时,需要先定义这两个字段,然后在 & 获取地址, 有什么简便写法吗?

    12 条回复    2022-10-01 00:02:10 +08:00
    westoy
        1
    westoy  
       2022-09-28 11:35:27 +08:00
    封装一个函数......
    dongtingyue
        2
    dongtingyue  
       2022-09-28 11:52:59 +08:00
    为什么结勾体里面要定义成指针?
    niceTeen84
        3
    niceTeen84  
    OP
       2022-09-28 11:55:15 +08:00
    @dongtingyue 用 sqlx 查询数据库时,有些字段是 null ,所以需要定义为指针类型
    wheeler
        4
    wheeler  
       2022-09-28 11:55:41 +08:00 via iPhone
    niceTeen84
        5
    niceTeen84  
    OP
       2022-09-28 11:58:56 +08:00
    @wheeler 就是封装成函数是吧?
    bruce0
        6
    bruce0  
       2022-09-28 12:18:12 +08:00
    sqlx 查询 空字段, 是不是可以用这个解决 https://www.jianshu.com/p/9231752e7f96
    niceTeen84
        7
    niceTeen84  
    OP
       2022-09-28 13:39:14 +08:00
    @bruce0 这个可以。
    haolongsun
        8
    haolongsun  
       2022-09-29 00:37:17 +08:00
    sqlx 提供了 一系列的 null 值吧,去文档找找
    wangritian
        9
    wangritian  
       2022-09-29 03:51:43 +08:00
    func Ptr[T interface{}](n T) *T {
    return &n
    }
    king888
        10
    king888  
       2022-09-29 11:11:04 +08:00
    写 golang 有没有种可能,干脆数据库能不用 null ,就不用 null 算了
    niceTeen84
        11
    niceTeen84  
    OP
       2022-09-29 13:51:38 +08:00
    @king888 sql 查询一些情况下还是避免不了 null 值的返回
    guanhui07
        12
    guanhui07  
       2022-10-01 00:02:10 +08:00
    确实避免不了 null 比如 text 类型就不能设置为 not null 约束
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1195 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:32 · PVG 02:32 · LAX 10:32 · JFK 13:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.