Groovy: Groovy中的true和false

[size=x-large]Groovy中的true和false[/size]

这里说Groovy的true和false其实不太准确, Groovy中的true和false两个关键字和Java一样都是boolean类型。 这里要说的是Groovy中的条件判断为真和假的情况。在Java中条件判断只能是boolean类型。在java中要宽泛的多:

boolean类型的true和false:

def b1 = false
def b2 = true
assert !b1
assert b2

空字符串被判断为false,非空字符串被判断为true:

def s1 = ''
def s2 = 'abc'
assert !s1
assert s2


数值0被判断为false, 非0被判断为true:

def n1 = 0
def n2 = 42
assert !n1
assert n2


空的List和迭代器被判断为false, 否则为true:

def l1 = []
def l2 = [1, 3, 6]
assert !l1
assert l2
def i1 = l1.iterator()
def i2 = l2.iterator()
assert !i1
assert i2


空的Map被判断为false,非空Map为true:
def m1 = [:]
def m2 = ['key': 'value']
assert !m1
assert m2


空的对象引用为false,非空为true:

def o1
def o2 = new Expando(name: 'groovy')
assert !o1
assert o2


匹配的正则表达式为true, 不匹配为false:

def ma1 = "groovy" =~ /java/
def ma2 = "groovy" =~ /groovy/
assert !ma1
assert ma2

这里要特别注意的一点,上面除了boolean类型以外都是“[b]被判断为true和false[/b]”,而不是boolean类型的true和false,也就是说

assert null == false  // 输出false
assert null == true // 输出false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值