douzhouqin6223 2017-12-23 23:56
浏览 65
已采纳

Golang中是否有虚拟指针类型作为函数参数

Is there a placeholder-like dummy pointer type which will allow not to make extra variable for rows.Scan() when number of columns mismatch with number of args in rows.Scan() in golang ?

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)
}
  • 写回答

1条回答 默认 最新

  • dty5753 2017-12-24 10:24
    关注

    No, there is not.

    You must pass a pointer to a value. You can, of course, ignore that value after it's populated by Scan:

    dummy := new(T) // creates a pointer to a zero-value object of type T
    err := rows.Scan(dummy)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?