【发布时间】:2018-01-05 02:49:09
【问题描述】:
我正在尝试创建一个从螺旋读取二维数组返回数组的方法。我正在使用递归,然后想在传入的参数数组为空时停止它。
@arr = []
def spiral(array)
array.to_a.empty? ? true : @arr << array.shift
spiral(array.transpose.reverse)
end
但是,在递归行中添加时,空方法无法将“[]”识别为空,并抛出“堆栈级别太深”错误,我认为这是一个无限循环,因为它没有停止标准?
【问题讨论】:
-
array.to_a.empty? ? return : @arr << array.shift
标签: arrays ruby recursion ternary-operator