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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...