您使用的是什么版本的Go(去版)? https://play.golang.org
你做了什么?
运行一个小程序:
package main
import "fmt"
const true = false
func main() {
if (true == false) {
fmt.Println("True equals to false")
}
fmt.Println("Hello World")
}
https://play.golang.org/p/KwePsmQ_q9
错误或警告消息,我使用已定义的名称创建常量,并可能破坏整个应用。
运行没有问题。没有警告或任何阻止使用已定义名称创建新常量的内容。
答案 0 :(得分:9)
true
和false
不是保留关键字。这些是预先声明的标识符。
const (
true = 0 == 0 // Untyped bool.
false = 0 != 0 // Untyped bool.
)
这意味着true
和false
是简单的两个无类型布尔值。这就是您的示例true
等于false
。