go语言陷阱之七:不能用nil初始化无类型变量
2015-07-25 本文已影响522人
wu_sphinx
The "nil" identifier can be used as the "zero value" for interfaces, functions, pointers, maps, slices, and channels
go里面的nil可以作为接口、方法、指定等(后面不知怎么翻译)的零值,但一定得有类型。
先上代码:
package main
func main() {
var x = nil //error
_ = x
}
# command-line-arguments
./hello.go:4: use of untyped nil
至此,go语言中变量似乎都有一个明确的归属,对于coder来说,才能做到心中有数。
找到原因后,上正确示例:
package main
func main() {
var x interface{} = nil
_ = x
}
又避免了一坑