Ruby Nil和Zero

前端之家收集整理的这篇文章主要介绍了Ruby Nil和Zero前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Ruby的NilClass实例中的to_i方法返回零的事实是什么?返回零或提出异常不会更符合逻辑?

解决方法

NilClass定义了#to_i,因为它定义了一个返回[]的#to_a.它给你一些正确的类型,但是一种空白的价值.

这实际上是非常有用的.例如:

<%= big.long.expr.nil? ? "" : big.long.expr %>

变为:

<%= big.long.expr %>

更好! (Erb正在调用#to_s,为nil,为“”.)和:

if how.now.brown.cow && how.now.brown.cow[0]
  how.now.brown.cow[0]
else
  0
end

变为:

how.now.brown.cow.to_a[0].to_i

当只需要一个表示时,存在短的转换.长时间的转换是Ruby核心方法调用的转换,它们需要非常接近的东西.如果你想要一个类型检查,请使用它们.

那是:

thing.to_int # only works when almost Integer already. NilClass throws NoMethodError

thing.to_i # this works for anything that cares to define a conversion

猜你在找的Ruby相关文章