2022-09-30:以下go语言代码输出什么?A: true true false true false; B: true false false true false; C: true true true false false;D: true true false true true。
package main
func main() {
var (
a int = 0
b int64 = 0
c interface{} = int(0)
d interface{} = int64(0)
)
println(c == 0)
println(c == a)
println(c == b)
println(d == b)
println(d == 0)
}
答案选A。第3个为false,是因为c是int类型,b是int64类型。第5个为false,那是因为d是int64类型,0是int类型,这个0很容易被当成无类型,会误认为是true。从这里可以看出,做比较的时候,是没有无类型的概念的。