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。从这里可以看出,做比较的时候,是没有无类型的概念的。

在这里插入图片描述