Boolean Values and Expressions

Go 提供了两种内置的值, true和false. Go支持标准的逻辑和比较操作符,如表2.3所示.

Table 2.3

Syntax Descriptions/result
!b NOT操作符, 如果b为true,则整个表达式为false
a || b OR操作符, 只要a或者b为true则为true
a && b AND操作符, 只有a,b同时为true, 表达式才为true
x < y 如果x比y小,才为真
x <= y x小于或等于y,才为真
x == y x等于y,才为真
x != y x非等于y,才为真
x >= y x大于或者等于y,才为真
x > y x大于, 才为真

== 和 != 操作符可以用于任何的可比较类型,包括arrays和structs。 所有的比较操作符都不能用于slice类型(可以使用reflect.DeepEqual()函数)。 ==和!=可以用于比较两个指针(pointers)或者两个接口(interface). 其它的操作符只能是比较数字或者字符串。

Go 跟C和Java一样,不支持操作符的重载(c++可以). 所以我们为了比较我们自己定义的类型,我们需要实现Less(), Equal(), 在第六章会讲解到