【发布时间】:2017-03-17 18:27:52
【问题描述】:
该方法的基本前提是参数数组采用多维数组并顺时针绕矩阵蛇行将所有值推入 arr 并将它们作为整数列表返回。
但是,我似乎收到了这个错误:
`block in snail': undefined method `reverse' for nil:NilClass (NoMethodError)
这是我的方法:
def snail(array)
arr = []
loop do
return arr.flatten if array.empty?
arr << array.shift
array.map {|row| arr << row.pop}
arr << array.pop.reverse
array.map {|row| arr << row.shift}
end
end
这是测试参数:
[[1,2,3],[4,5,6],[7,8,9]
这是我将第 5 行编辑为此时得到的输出:
line 5: arr << unless NilClass then array.pop.reverse end
output: [1, 2, 3, 6, 9, nil, 4, 7, 5, 8, nil, nil]
预期回报:
[1, 2, 3, 6, 9, 8, 7, 4, 5]
为什么会出现这些 nil 值?
【问题讨论】:
标签: ruby recursion multidimensional-array null