Project1

标题: 【Ruby】逻辑运算-if 成立条件 [打印本页]

作者: 寒冷魔王    时间: 2014-10-18 02:08
标题: 【Ruby】逻辑运算-if 成立条件
本帖最后由 寒冷魔王 于 2014-10-18 02:19 编辑

发布在该区在于本帖技术含量较低,以及技术讨论区人少。
  1. puts "nil" if nil
  2. puts "!nil" if !nil
  3. puts "true" if true
  4. puts "!true" if !true
  5. puts "!false" if !false
  6. for i in 0..10
  7. puts "#{i}" if i
  8. puts "!#{i}" if !i
  9. end
  10. puts "string" if ""
  11. p !nil
  12. p !false
  13. p 1<2
  14. p !0
  15. p !!0
  16. p false == 0 # 注意该行表明false值不为0
复制代码
if成立条件,if后表达式该表达式否定之否定的值为true。

输出:
!nil
true
!false
0
1
2
3
4
5
6
7
8
9
10
string
true
true
true
false
true
false
作者: taroxd    时间: 2014-10-18 08:58
本帖最后由 taroxd 于 2014-10-18 09:03 编辑

你错了。

RUBY 代码复制
  1. obj = Object.new
  2.  
  3. # 定义 obj 的否定为 true
  4. def obj.!
  5.   true
  6. end
  7.  
  8. p obj   ? true : false   #=> true
  9. p !obj  ? true : false   #=> true
  10. p !!obj ? true : false   #=> false


RUBY 代码复制
  1. obj = Object.new
  2.  
  3. # 定义 obj 的否定为 obj
  4. def obj.!
  5.   self
  6. end
  7.  
  8. p obj   ? true : false   #=> true
  9. p !obj  ? true : false   #=> true
  10. p !!obj ? true : false   #=> true

作者: 寒冷魔王    时间: 2014-10-18 09:03
taroxd 发表于 2014-10-18 08:58
你错了。


233你真幽默~
照你这么改p !!obj当然是false了。
但是默认还是true。
作者: taroxd    时间: 2014-10-18 09:06
寒冷魔王 发表于 2014-10-18 09:03
233你真幽默~
照你这么改p !!obj当然是false了。
但是默认还是true。

这个东西Ruby本来就让你改的嘛

说这么复杂干什么呢? 除了 false 和 nil,其余的所有对象在 if 条件中都判定为真。这样说不就好了嘛
作者: 正太君    时间: 2014-10-18 09:06
taroxd 发表于 2014-10-18 08:58
你错了。

第二个代码第8行,p obj 不是obj吗...




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1