Ruby中为何会有zero?方法?
在做数值的0值判断时候,通常如下编码,尤其是有其他语言(c/c++/java)背景的人:
if count_people == 0
// do something
end
但是,难免敲漏了字符(少敲了一个等于号=),于是,代码变成:
if count_people = 0
// 该代码块始终会执行,因为count_people始终truthy
end
于是,为了避免上述问题,代码变成:
if 0 == count_people
# do something
end
如果再敲漏了字符,则Ruby解释器会抛异常:
if 0 = count_people
# do something
end
syntax error, unexpected '=', expecting `then' or ';' or '\n'
if 0 = count_people # syntax error...
而zero?方法很好的表达了意图,我们要对数值进行0值判断。