我有一个数组,通常保存一条记录。我需要应用条件检查以确保数组大小不为零。但是,在数组上应用 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]