我目前正在通過'學習Ruby硬盤方式'課程告訴自己Ruby,並且在函數中引用了數組變量的問題。訪問Ruby中的數組變量
關於while循環的部分,需要將while循環變成函數,將while循環參數調整爲變量。我的代碼:
#original while loop
while i < 6
puts "At the top i is #{i}"
numbers.push(i)
i += 1
puts "Numbers now: ", numbers
puts "At the bottom i is #{i}"
end
#new function
number_array = []
def number_cruncher(number, cap)
if number < cap
puts "At the top number is #{number}"
number_array.push(number)
number += 1
puts "Numbers now: ", number_array
puts "At the bottom number is #{number}"
number_cruncher(number, cap, number_array)
end
end
number_cruncher(0,6)
運行這段代碼給出了一個NameError,因爲在函數引用number_array是未定義的局部變量。我可以理解這是錯誤的,但我無法弄清楚什麼變量範圍或語法可以讓我引用一個起始點爲空數組的變量 - 除非指定一個變量「number_array」作爲函數的參數,然後聲明number_array = [],這是功能性的,但似乎過於複雜。
我已經研究了Ruby中的變量作用域(這裏和其他地方),但仍然無法解決這個問題....我100%確定我真的很愚蠢,但幫助仍然不勝感激!
可能重複的[爲什麼我不能訪問Ruby中的方法中的局部變量?](https://stackoverflow.com/questions/10779171/why-cant -i-access-a-local-variable-inside-a-method-in-ruby) – aristotll