将nil附加到切片会导致0值

时间:2013-08-05 17:11:11

标签: go

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

var values []interface{}

values = append(values, nil)

然而,这样做,

values[0] = nil

达到我的预期。它导致切片保持零值

[<nil>]

我需要将nil值传递给我的db驱动程序。这是怎么回事?

1 个答案:

答案 0 :(得分:3)

我无法重现您的问题: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