go - golang中是否有一个虚拟指针类型作为函数参数

标签 go

是否有类似占位符的虚拟指针类型,当列数与 golang 中的 rows.Scan() 中的 args 数不匹配时,它不允许为 rows.Scan() 创建额外的变量?

rows, err := db.Query(`SELECT 1, 2, 3`)
for rows.Next() {
    var c1 int
    var c2 int
    // panic (number of arguments mismatch)
    err = rows.Scan(&c1, &c2)
    // syntax error
    err = rows.Scan(&c1, &c2, _)
    // Scan error on column index 2: destination not a pointer
    err = rows.Scan(&c1, &c2, nil)
}

最佳答案

没有,没有。

您必须传递一个指向值的指针。当然,您可以在 Scan 填充该值后忽略该值:

dummy := new(T) // creates a pointer to a zero-value object of type T
err := rows.Scan(dummy)

关于go - golang中是否有一个虚拟指针类型作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47957021/

相关文章:

sql - 奇怪的 Golang SQL 错误 - WHERE 子句

go - 如何将函数调用附加到 golang 结构?

arrays - 在golang中将数组作为参数传递

mongodb - 如何运行 main.go 文件,而不必在容器外部单独运行它们?

go - 写入exec.Cmd.StdinPipe()不会做任何事情

unit-testing - beego app如何编写测试用例?

GO:从列表中输入断言

ruby-on-rails - 检索具有完整数据的 bson.Binary

go - 无法安装 Go 软件包

具有保留名称 golang 的结构字段