def print_array(arr)
# YOUR WORK HERE
i = 0
if i > arr.length
else
p print_array(arr[i])
i += 1
end
end
我得到以下错误::4:在1:整数的print_array': undefined method
长度中(NoMethodError(每当我尝试运行代码时。不了解问题所在。
您实际上在调用print_array(1)
,这不是一个有效的调用。
您需要的是:
print_array([ arr[i] ])
或者,您可以使用阵列切片:
print_array(arr[i,1])
或者更改参数,使其默认为数组:
def print_array(*arr)
# ...
end
然后在不使用[ ... ]
的情况下进行初始调用。
我建议代码的固定版本如下:
def print_array(arr, index = 0)
return if index > arr.length
p arr[index]
print_array(arr, index + 1)
end
或者可能:
def print_array(arr)
return unless arr.any?
p arr[0]
print_array(arr.drop(1))
end