小弟是新手,目前读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后者相同
可以请教一下原因吗? 感谢