Groovy 真相(真實的)

Groovy 以與 Java 對標準 Java 條件相同的方式評估 ifwhilefor 語句中的條件 :在 Java 中,你必須提供一個布林表示式(一個求值為布林值的表示式),結果是評估的結果。

在 Groovy 中,結果與 Java 中的結果相同(沒有提供示例,這是標準 Java)。

示例中顯示的其他真實性評估機制可歸納為:

  • 數字:零值評估為 false,非零值為 true。
  • 物件:空物件引用的計算結果為 false,非空引用為 true。
  • 字元:具有零值的字元的計算結果為 false,否則為 true。
  • String:如果不為 null 且不為空,則字串求值為 true;如果為 null 或為空則為 false(也適用於 GStrings 和 CharSequences)。
  • 集合和對映(包括子類 ListMapSetHashSet ……):還考慮了大小,如果集合不為 null 且不為空,則求值為 true;如果為 null 或為空,則求值為 false。
  • Enumerations 和 Iterators 如果不為 null 則求值為 true,並且它們是更多元素(groovy 求值物件上的 hasMoreElementshasNext ),如果為 null 或不再有元素,則為 false。
  • 匹配器:匹配器如果至少有一個匹配則求值為 true,如果找不匹配則判斷為 false。
  • 閉包:閉包評估閉包返回的結果的評估。

可以在使用者定義的類中覆蓋 asBoolean 方法以提供自定義布林值評估。