gpt4 book ai didi

ruby - 为什么我不能将函数参数压入数组?

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:02 25 4
gpt4 key购买 nike

我试图找到这个 collat​​z 序列的长度。如果我改变 test_array << numberputs number ,我能够输出序列中的每个数字,但由于某种原因,我无法让这个函数在将新值返回到函数之前将数字插入数组。任何帮助将不胜感激。

test_array = []

def collatz_sequence(number)
return number if number==1
if number%2==0
test_array << number
return collatz_sequence(number/2)
else
test_array << number
return collatz_sequence(3*number+1)

end
end

puts collatz_sequence(13)

最佳答案

test_array = [] 超出范围。 def 创建一个新范围,因此您无法从该方法中访问 test_array 的值。

解决此问题的一种方法是使 test_array 成为实例变量:@test_array

关于ruby - 为什么我不能将函数参数压入数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18041554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com