-3

将 nil 值附加到接口切片会导致切片包含 0 值。[0]

var values []interface{}

values = append(values, nil)

然而这样做,

values[0] = nil

做我所期望的。它导致一个切片包含一个 nil 值

[<nil>]

我需要将 nil 值传递给我的数据库驱动程序。这里发生了什么?

4

1 回答 1

4

我无法重现您的问题:append(values, nil)正确附加一个 nil 包装为接口:

package main
import "fmt"
func main() {
     var values []interface{}
     values = append(values, nil)
     fmt.Printf("%#v", values) // == []interface {}{interface {}(nil)}
}

http://play.golang.org/p/ -unk6Hdt

于 2013-08-05T17:23:22.487 回答