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 方法以提供自定义布尔值评估。