Groovy 真值规则

目录

1. 布尔表达式

2. 集合和数组

3. 匹配器(Matcher)

4. 迭代器和枚举

5. 映射

6. 字符串

7. 数字

8. 对象引用

9. 使用 asBoolean 方法定制真值规则


Groovy 通过下面这些规则来决定要将一个表达式求值为布尔值时,结果是真(true)还是假(false)。

1. 布尔表达式

如果布尔值为 true,表达式结果就为 true,否则为 false。

assert true
assert !false

2. 集合和数组

非空集合和非空数组都被当作 true。

assert [1, 2, 3]
assert ![]

3. 匹配器(Matcher)

如果匹配器至少有一处匹配则被当作 true。

assert ('a' =~ /a/)
assert !('a' =~ /b/)

4. 迭代器和枚举

如果迭代器和枚举中还有元素则会被当作 true。

assert [0].iterator()
assert ![].iterator()
Vector v = [0] as Vector
Enumeration enumeration = v.elements()
assert enumeration
enumeration.nextElement()
assert !enumeration

5. 映射

非空映射会被当作 true。

assert ['one' : 1]
assert ![:]

6. 字符串

非空的字符串、GString、字符序列都会被当作 true。

assert 'a'
assert !''
def nonEmpty = 'a'
assert "$nonEmpty"
def empty = ''
assert !"$empty"

7. 数字

非零数字都会被当作 true。

assert 1
assert 3.5
assert !0

8. 对象引用

非 null 的对象引用会被当作 true。

assert new Object()
assert !null

 

9. 使用 asBoolean 方法定制真值规则

想要告知 Groovy 将你的对象求值为 true 还是 false,只要实现 asBoolean 方法即可:

class Color {
    String name

    boolean asBoolean(){
        name == 'green' ? true : false
    }
}

在需要将你定义的对象转换为布尔值时,Groovy 会自动调用 asBoolean 方法:

assert new Color(name: 'green')
assert !new Color(name: 'red')

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值