新手请教一个问题

2022-09-28 11:33:22 +08:00
 niceTeen84

代码如下:

type Man struct {
	Name *string
	Age *uint8
}

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

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

1689 次点击
所在节点    Go 编程语言
12 条回复
westoy
2022-09-28 11:35:27 +08:00
封装一个函数......
dongtingyue
2022-09-28 11:52:59 +08:00
为什么结勾体里面要定义成指针?
niceTeen84
2022-09-28 11:55:15 +08:00
@dongtingyue 用 sqlx 查询数据库时,有些字段是 null ,所以需要定义为指针类型
wheeler
2022-09-28 11:55:41 +08:00
niceTeen84
2022-09-28 11:58:56 +08:00
@wheeler 就是封装成函数是吧?
bruce0
2022-09-28 12:18:12 +08:00
sqlx 查询 空字段, 是不是可以用这个解决 https://www.jianshu.com/p/9231752e7f96
niceTeen84
2022-09-28 13:39:14 +08:00
@bruce0 这个可以。
haolongsun
2022-09-29 00:37:17 +08:00
sqlx 提供了 一系列的 null 值吧,去文档找找
wangritian
2022-09-29 03:51:43 +08:00
func Ptr[T interface{}](n T) *T {
return &n
}
king888
2022-09-29 11:11:04 +08:00
写 golang 有没有种可能,干脆数据库能不用 null ,就不用 null 算了
niceTeen84
2022-09-29 13:51:38 +08:00
@king888 sql 查询一些情况下还是避免不了 null 值的返回
guanhui07
2022-10-01 00:02:10 +08:00
确实避免不了 null 比如 text 类型就不能设置为 not null 约束

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

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

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

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

© 2021 V2EX