对为什么会发生以下情况感到困惑。TLDR;我将指针和“&val”传递给 database/sql 的Scan方法,并得到不同的结果
rows, err := db.Query(selectRowsQuery)
val = new(int)
for rows.Next() {
err = rows.Scan(val)
...
fmt.Println(val) // 0xc0000b6c48
Val 的值是一个指针。为什么 val 保留为指针?
但如果我这样做:
var val int
...
err = rows.Scan(&val)
fmt.Println(val) // 0
val 作为值返回。“&val”(val 是一个 int 值)和“val” (val 是一个指向 int 的指针)不是一回事吗?
回首忆惘然
相关分类