Groovy的boolean值

来源:互联网 发布:听歌软件免费 编辑:程序博客网 时间:2024/06/16 19:42

Groovy boolean值

Groovy与Java 的boolean值有着本质的区别. 根据不同的情况, Groovy 会自动将表达式的值 作为boolean看待. 让我们来看看具体的实例. 下面的Java代码不能正常运行:

//Java code String obj = "hello" ; int val = 4; if (obj) {} // ERROR if(val) {} //ERROR

Java 必须要你在if条件语句中提供一个boolean表达式值. 上面的代码必须改成 if(obj != null) 和 if(val > 0) 才能正常运行. Groovy 就不会那么挑剔了. 如果你把一个对象放在一个boolean表达式中,Groovy 会检查这个对象是否为null. 它会把null当做false,否则为true, 就像下面的代码:

str = 'hello' if (str) {     println 'hello' } 

输出为:hello

上面是相对于单个对象,那么对于集合(比如java.util.ArrayList)这样的类型,它会怎么判断 了.Groovy 会检查集合是否为空来判断,因此,像if (obj)为 true 的条件只在obj 不为null 且集 合必须拥有至少一个元素:

lst0 = null println lst0 ? 'lst0 true' : 'lst0 false' lst1 = [1, 2, 3] println lst1 ? 'lst1 true' : 'lst1 false' lst2 = [] println lst2 ? 'lst2 true' : 'lst2 false'

这里写图片描述

上面的代码输出:
lst0 false
lst1 true
lst2 false

原创粉丝点击