【发布时间】:2016-03-20 11:24:13
【问题描述】:
我在我的 Go 书中读到指针是可比较的。它说:两个指针相等当且仅当它们指向同一个变量或两者都为 nil。
那么为什么在比较指向两个不同变量的两个指针时,我的以下代码会打印“真”?
func main() {
var p = f()
var q = f2()
fmt.Println(*p == *q) // why true?
}
func f() *int {
v := 1
return &v
}
func f2() *int {
w := 1
return &w
}
【问题讨论】:
-
您正在比较存储在指针中的值,而不是指针本身。试试
fmt.Println(p == q)。 -
与question 相关(不是欺骗)
</>运营商。