ruby中的布尔值

ruby中布尔值是一个特殊对象。它由两个类型组成TrueClass和FalseClass,可以在irb里试一下 true.class,这两个类型生成两个特殊的对象: true  和 false。

所有ruby中的对象都可以转成布尔值,nil是false,其他全部是true,当然false还是false。
在irb里试:puts "true" if nil,则不会打出 true,而是返回nil。

 0并不象想象中的那样是false,而是true.  可以在irb里试一下: puts "true" if 0 . 这会打印出true,说明0就是true,因为它是一个对象,ruby没有数字型的说法,而是一个对象。

在使用的时候,如果掌握不了这种灵活的用法,那么就注意几点就行了:
1.使用同类型比较,返回的布尔值肯定是对的。比如: 0=="0" ,这是false。 0==0 就是true。
2.不要直接取对象的布尔值。比如: 0 是true, "0" 也是 true, 而 0!=0 是false,如果判断非0一定要直接写 obj != 0 ,不能象c那样写。即使是判断nil,也用 obj.nil?,这样代码比较清晰。
3.使用if ,弃用unless。如果你有时候会弄晕,那么为了保证安全,只用if ,即使是检查nil也不用unless。
特别是你在多种语言间转来转去的时候。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值