小弟是新手,目前讀learn ruby the hard way到ch37
在查詢and operator用法時出現一些困惑,想請各位幫忙釋疑
在the ruby programming language中讀到
1.
ruby中,只有true/false為內建的boolean type變數
在ruby中,除了false、nil在作判斷時,會被視為false
其餘皆為true (包含 true/ 任何的fixnum / 0 / Nan / [] / {} )
2.
ruby有short-cicuiting的特性
當and前的值,為false,則無視and後的值為何,此式為false
(e.g. if false and true => 結果為false)
當or前的值為true,則無視and後的值為何,此式為true
(e.g. if true or false =>結果為true)
這部分我懂,但當拿fixnum來作運算時,我就不能理解結果了
0 and 0 #=> 0
0 and 1 #=> 1
1 and 0 #=> 0
1 and 1 #=> 1
試著換成更大的值
0 and 0 #=> 0
0 and 4 #=> 4
4 and 0 #=> 0
4 and 4 #=> 4
看結果的話,and的結果,似乎跟and後者相同
可以請教一下原因嗎? 感謝