博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
groovy-真值
阅读量:7060 次
发布时间:2019-06-28

本文共 1541 字,大约阅读时间需要 5 分钟。

Boolean expressions

Groovy支持标准的条件运算符的布尔表达式:

1 def a = true
2 def b = true
3 def c = false
4 assert a
5 assert a && b
6 assert a || c
7 assert !c

此外,Groovy中有强制转换非布尔对象为布尔值的特殊规则。

集合

空集合会被强制转换为false:

1 def numbers = [1,2,3]
2 assert numbers //true, as numbers in not empty
3 numbers = []
4 assert !numbers //true, as numbers is now an empty collection

迭代器和枚举

没有进一步元素的枚举和迭代器都会被强制转换为false:

1 assert ![].iterator() // false because the Iterator is empty
2 assert [0].iterator() // true because the Iterator has a next element
3 def v = new Vector()
4 assert !v.elements() // false because the Enumeration is empty
5 v.add(new Object())
6 assert v.elements() // true because the Enumeration has more elements

Map

非空的map被强制转换为true:

1 assert ['one':1]
2 assert ![:]

Matchers

当匹配到正则表达式的模式的时候会强制转换为true:

1 assert ('Hello World' =~ /World/) //true because matcher has at least one match

Strings

非空的Strings, GStrings 和CharSequences 将被强制转换为true:

1 <div>
2 <div>
3 <pre><code data-result="[object Object]">// Strings
4 assert 'This is true'
5 assert !''
6 //GStrings
7 def s = ''
8 assert !("$s")
9 s = 'x'
10 assert ("$s")

 

Numbers

非0的数值被强制转换为true,就如同perl一样。

1 <div>
2 <div>
3 <pre><code data-result="[object Object]">assert !0 //yeah, 0s are false, like in Perl
4 assert 1  //this is also true for all other number types

 

Object references

非null的对象引用被强制转换为true:

1 assert new Object()
2 assert !null
==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/3349055.html,如需转载请自行联系原作者
你可能感兴趣的文章
影响网站排名的30个因素
查看>>
J2EE搭建之八 运行第一个JSP
查看>>
c++filt
查看>>
ExtJS中get、getDom、getCmp、getBody、getDoc的使用
查看>>
Android Studio的使用
查看>>
我的友情链接
查看>>
【云图】【支付宝】如何在支付宝服务窗上增加家乐福门店分布图?
查看>>
WebLogic缓存
查看>>
针对百度搜索上线的极光算法,我们应该怎样应对?
查看>>
WordPress文件结构
查看>>
Java程序员从笨鸟到菜鸟之(七十一)细谈struts2(十三)struts2实现文件上传和下载详解...
查看>>
Feign http 请求跟踪—乱码及连接池
查看>>
python unittest库 官方网站
查看>>
shell脚本安装 nfs-server
查看>>
5G超新时代,点燃了25G和100G光模块市场
查看>>
程序员最怕的四个字:通宵发布!| 程序员有话说
查看>>
没有公网IP怎样访问异地视频监控
查看>>
企业网站如何备案
查看>>
分析日志的小脚本
查看>>
SUSE 11中安装gcc开发环境
查看>>