当前位置 : 主页 > 编程语言 > ruby >

在Ruby 1.9中替换Array#nitems?

来源:互联网 收集:自由互联 发布时间:2021-06-23
Ruby 1.8有一个数组的方法nitems.这似乎已经从Ruby 1.9中消失了.在1.9中是否有替代品? 它已从Ruby 1.9中删除 你可以用它代替: array = [nil, 2, "a", nil, 'b', nil]array.count{|x| !x.nil?} = 3 或者你可以自
Ruby 1.8有一个数组的方法nitems.这似乎已经从Ruby 1.9中消失了.在1.9中是否有替代品? 它已从Ruby 1.9中删除

你可以用它代替:

array = [nil, 2, "a", nil, 'b', nil]
array.count{|x| !x.nil?}
 => 3

或者你可以自己重新定义它,如果你的Ruby版本不再拥有它:

if ! Array.method_defined?(:nitems)
  class Array
    def nitems
      count{|x| !x.nil?}
    end
  end
end


a = [nil, 2, "a", nil, 'b', nil]
a.nitems
 => 3
网友评论