【发布时间】:2014-03-10 06:42:56
【问题描述】:
我有以下代码:
package main
import "fmt"
func main() {
fmt.Println(interface{}(1) == interface{}(1))
var a *int
fmt.Println(a == nil)
fmt.Println(interface{}(a) == interface{}(nil))
}
它输出:
true
true
false
我想知道为什么。在第一种情况下,可以看出将值包装在 interface{} 中并不会阻止确定相等性,但是将 nil 指针(等于 nil)包装在 interface{} 中并不相同作为interface{}(nil)。这是为什么呢?
【问题讨论】: