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
compact
的结果。 - Tilounless
比if !
更好。 - ugoa