Estoy leyendo a través del excelente Ruby on Rails Tutorial y he encontrado el siguiente código.¿Por qué tratar 0 como verdadero en Ruby?
if 0
true
else
false
end
Los rendimientos por encima true
e ilustra cómo a diferencia de muchos idiomas (C siendo el ejemplo obvio), rubí trata 0
como true
. En lugar de descartar el comportamiento como idiosincrásico, supongo que hay una buena razón para esta importante desviación de la convención. Python, por ejemplo, trata 0
como False
, tal como cabría esperar.
En resumen, ¿cuál es la lógica en el diseño de ruby para tratar 0
como true
?
Lo que es interesante, especialmente porque estoy llegando a ruby desde python, es que todos los ejemplos que mencionas ('[]', '{}' y '" "') son 'false' en python. En mi opinión, esto solo mejora la rareza de ruby. – enocom
Y estoy seguro de que las personas que aprenden Python después de conocer Ruby, Perl, JavaScript, Lua (etc.) encuentran extraño que esos valores no sean ciertos. – maerics
Rails introdujeron #blank ?, #present ?, #empty ?, y tal vez más porque, creo, 0, [], {} y "" no son falsos. Eso hace que el código sea más grande contra el principio de código menos ruby. – allenhwkim