Why Treat 0 as True in Ruby?

前端 未结 3 956
庸人自扰
庸人自扰 2020-12-30 19:45

I\'m reading through the excellent Ruby on Rails Tutorial and have encountered the following code.

if 0
  true
else
  false
end

The above r

3条回答
  •  灰色年华
    2020-12-30 20:21

    I'm guessing that Matz wanted conceptual simplicity of "truthiness" as such - the only "false" values are false and nil. Period.

    Using just false would be the cleanest but there is understandable need for including nil. To include the integer zero as a special case might open the mental floodgates of questioning truthiness of other types. What about strings, is "" false? And arrays, is [] false? And hashes, is {} false? Ad insanitum (see JavaScript)...

提交回复
热议问题