为什么允许“const true = false”?

您使用的是什么版本的 Go(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


你期待看到什么?

我正在使用已定义的名称创建常量的错误或警告消息,并可能破坏整个应用程序。


你看到了什么?

运行没有问题。没有警告或任何阻止使用已定义名称创建新常量的内容。


绝地无双
浏览 120回答 1
1回答

缥缈止盈

true并且false不是保留关键字。这些是预先声明的标识符。const (        true  = 0 == 0 // Untyped bool.        false = 0 != 0 // Untyped bool.)这意味着true和false是简单的两个无类型布尔值。这就是在您的示例true中等于false.https://golang.org/pkg/builtin/#pkg-constants
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go