听老歌 发表于 2012-02-03 18:32

ruby unless的使用

ruby unless的使用





ruby unless 表达式在条件为false才运行代码块,但其与条件"&& ||"逻辑组合使用一直没有搞懂.到底是false && false才运行unless的代码块,还是 false || false才继续运行.

其实这个问题很简单,只是一直没有想过这一点.unless只管条件是false还是true,至于是不是使用了 && 或 || 操作符,是不管的.
&&逻辑符,还是只有在前面条件为真时,才运行后面的条件


Ruby代码1.puts 'ok' unless 1 && nil #整个条件表达式返回nil,那么unless条件成立,打印出ok   
2.puts 'ok' unless 1 || nil #整个条件表达式返回1,不成立,无打印输出   
3.puts 'ok' unless nil || false #整个条件表达式返回false,成立,打印ok

冰释一片天 发表于 2012-02-03 18:32

谢谢分享

gr33n 发表于 2012-02-03 20:53

一直没有想过这一点
谢谢分享

兰花仙子 发表于 2012-02-04 10:33

unless就是对条件表达式取反。
先判断条件表达式的值:
1 && nil,结果是否,那么unless后就是真。
1 || nil,结果是真,那么unless后就是否。
任何语言都这样吧。

2gua 发表于 2012-02-04 11:20

记住“真亦假来,假亦真”就成了。
页: [1]
查看完整版本: ruby unless的使用