关系运算符和等于运算符

有些Groovy控制语句,如if和while控制语句(参见第8章),通常会使用条件(condition)来进行判断。条件决定表达式的值为真或者假。关系运算符、等于运算符和逻辑运算通常被用于构造条件表达式(附录C会详细讨论逻辑运算符)。

关系运算符如表2-5所示。四种运算符均为二元运算符,每种运算符都使用两个算术表达式作为操作数,并且得出布尔型结果true或者false。true和false都是Boolean类的实例。这些运算符都是通过调用compareTo(表2-5)方法来实现的。举例来说,a

表2-5 关系运算符

表达式

调用方法

结果

5 < 3

5.compareTo(3) < 0

5 <= 3

5.compareTo(3) <= 0

5 > 3

5.compareTo(3) > 0

5 >= 3

5.compareTo(3) >= 0

下面是一些使用关系运算符的表达式例子:

number < 0              // number是否是负数?
age >= 65               // 判断是否是老年人?
index <= limit-1          // 是否达到上限?

由于关系运算符的优先级低于算术运算符(参看附录C),最后一个例子应该被解释为index <= (limit-1)。

表2-6提到了等于运算符= =和!=。再次说明一下,它们也都是二元运算符,其运算所得出的结果值也是布尔值true或者布尔值false。这两个运算符都是通过equal方法实现的。compareTo运算符被<=>所替代,其优先级和前两个运算符相同。

表2-6 等于运算符

表达式

调用方法

结果

5 = = 3

5.equals(3)

5 != 3

! 5.equals(3)    //参见附录C

5 <=> 3

5.compareTo(3)

+1

一些范例:

def forename = ''Ken''
def surname = ''Barclay''
forename = = ''Ken''                   //结果为true
surname != ''Barkley''                 //结果为true

再次声明一下,这些等于运算最终都是通过调用某个方法实现的。例如,条件语句forename = =“Ken”实际上是通过forename.equals(“Ken”)来实现的。equals方法是String类的方法,其作用是判断两个值是否相同。类似的,对于下面两个赋值语句:

def age = 25
def number = 25
条件语句:
age = = number

其结果是布尔值true。在这里,age. equals(number)是通过Integer类的equals方法来求值的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值