What version of Go are you using (go version)? https://play.golang.org
What did you do?
Run a small program:
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
Error or warning message that I'm creating constant with already defined name, and potentially breaking whole app.
Running without a problem. No warnings or anything to prevent creating new constant with already defined name.
true
and false
are not reserved keywords. These are predeclared identifiers.
const (
true = 0 == 0 // Untyped bool.
false = 0 != 0 // Untyped bool.
)
This means that true
and false
are simple two untyped boolean values. This is the reason that in your example true
is equal to false
.
https://golang.org/pkg/builtin/#pkg-constants
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With