加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby Nil和Zero

发布时间:2020-12-16 19:49:31 所属栏目:百科 来源:网络整理
导读:Ruby的NilClass实例中的to_i方法返回零的事实是什么?返回零或提出异常不会更符合逻辑? 解决方法 NilClass定义了#to_i,因为它定义了一个返回[]的#to_a.它给你一些正确的类型,但是一种空白的价值. 这实际上是非常有用的.例如: %= big.long.expr.nil? ? "" :
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读