概述
在Groovy中,一个表达式的真假,按照以下规则决定。1.布尔表达式:如果为true,则为真。
2.集合与数组:如果集合与数组不为空,则为真。
3.匹配器:如果匹配器至少匹配一项,则为真。
4.迭代器和枚举:如果迭代器中还有下一个元素,则为真。
5.映射:如果映射不为空,则为真。
6.字符串:如果字符串、字符序列、GString不为空,则为真。
7.数字:如果不为0,则为真。
8.对象引用:如果如果对象引用不为null,则为真。
9.实现asBoolean方法:自定义,如果asBoolean返回true,则为真。
简单示例
assert true
assert !false
assert [1, 2, 3]
assert ![]
assert ('a' =~ /a/)
assert !('a' =~ /b/)
assert [0].iterator()
assert ![].iterator()
Vector v = [0] as Vector
Enumeration enumeration = v.elements()
assert enumeration
enumeration.nextElement()
assert !enumeration
assert ['one' : 1]
assert ![:]
assert 'a'
assert !''
def nonEmpty = 'a'
assert "$nonEmpty"
def empty = ''
assert !"$empty"
assert 1
assert 3.5
assert !0
assert new Object()
assert !null
class Color {
String name
boolean asBoolean(){
name == 'green' ? true : false
}
}
assert new Color(name: 'green')
assert !new Color(name: 'red')