如何获取可能包含 Rails 中单个元素的数组的长度



我有一个数组,通常保存一条记录。我需要应用条件检查以确保数组大小不为零。但是,在数组上应用 count 方法在我的 rails 控制台中抛出错误。我尝试了以下方法

nearest = Array.new
nearest = (Some expression to fetch records).first
nearest.size # throws error as undefined method size
nearest.count # throws error as undefined method count
nearest.length # throws error as undefined method length.

如何获取长度或至少设置一个表达式来检查值是否为 nil?

[...]数组大小不nil

数组大小永远不能nil。它是一个整数,可能为零。

代码的问题在于,您不是在数组本身上调用size,而是在数组的第一个元素上调用,这可能是nil的。

若要使代码按预期工作,可能需要执行以下任一操作:

nearest = Array.new
if nearest.size > 0
  nearest = (Some expression to fetch records).first
  # DO STUFF
end

或者,或者,检查 first 元素是否nil(数组的第一个元素始终可访问,尽管它为空数组返回 nil

nearest = Array.new
nearest = (Some expression to fetch records).first
unless nearest.nil?
  # DO STUFF
end
nearest = Array.new
nearest << Test.first
nearest.count

objArray = []
objArray = Array.new

要推送、推送或使用<<:

objArray.push 17
>>> [17]
objArray << 4
>>> [17, 4]

最新更新