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')

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章