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(), 在第六章会讲解到