我有一个通常会保存一条记录的数组。我需要应用条件检查以确保数组大小不为零。但是,在数组上应用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?
答案 0 :(得分:2)
[...]数组大小不是
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
答案 1 :(得分:0)
nearest = Array.new
nearest << Test.first
nearest.count
objArray = []
objArray = Array.new
推,推或使用&lt;&lt;:
objArray.push 17
>>> [17]
objArray << 4
>>> [17, 4]