The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
niceTeen84

新手请教一个问题

  •  
  •   niceTeen84 · Sep 28, 2022 · 2719 views
    This topic created in 1331 days ago, the information mentioned may be changed or developed.

    代码如下:

    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 replies    2022-10-01 00:02:10 +08:00
    westoy
        1
    westoy  
       Sep 28, 2022
    封装一个函数......
    dongtingyue
        2
    dongtingyue  
       Sep 28, 2022
    为什么结勾体里面要定义成指针?
    niceTeen84
        3
    niceTeen84  
    OP
       Sep 28, 2022
    @dongtingyue 用 sqlx 查询数据库时,有些字段是 null ,所以需要定义为指针类型
    niceTeen84
        5
    niceTeen84  
    OP
       Sep 28, 2022
    @wheeler 就是封装成函数是吧?
    bruce0
        6
    bruce0  
       Sep 28, 2022
    sqlx 查询 空字段, 是不是可以用这个解决 https://www.jianshu.com/p/9231752e7f96
    niceTeen84
        7
    niceTeen84  
    OP
       Sep 28, 2022
    @bruce0 这个可以。
    haolongsun
        8
    haolongsun  
       Sep 29, 2022
    sqlx 提供了 一系列的 null 值吧,去文档找找
    wangritian
        9
    wangritian  
       Sep 29, 2022
    func Ptr[T interface{}](n T) *T {
    return &n
    }
    king888
        10
    king888  
       Sep 29, 2022
    写 golang 有没有种可能,干脆数据库能不用 null ,就不用 null 算了
    niceTeen84
        11
    niceTeen84  
    OP
       Sep 29, 2022
    @king888 sql 查询一些情况下还是避免不了 null 值的返回
    guanhui07
        12
    guanhui07  
       Oct 1, 2022
    确实避免不了 null 比如 text 类型就不能设置为 not null 约束
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5176 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 05:59 · PVG 13:59 · LAX 22:59 · JFK 01:59
    ♥ Do have faith in what you're doing.