我不明白爲什麼我的代碼不起作用有人可以幫我嗎?我正在嘗試創建一個將項目添加到數組末尾的方法。我認爲我的問題在於我嘗試訪問本地變量的最後一行代碼...謝謝!爲什麼這種方法不允許我添加到數組中?
def add_to_array(name)
array = []
array << name
end
add_to_array("Rob")
add_to_array("Jack")
p array
我不明白爲什麼我的代碼不起作用有人可以幫我嗎?我正在嘗試創建一個將項目添加到數組末尾的方法。我認爲我的問題在於我嘗試訪問本地變量的最後一行代碼...謝謝!爲什麼這種方法不允許我添加到數組中?
def add_to_array(name)
array = []
array << name
end
add_to_array("Rob")
add_to_array("Jack")
p array
問題是您每次撥打add_to_array
方法時都會創建一個新陣列。
除此之外,此數組是本地變量,並且有一個範圍限於add_to_array
的生命週期。
嘗試以下操作:
def add_to_array(array, name)
array << name
end
array = []
add_to_array(array, "Rob")
add_to_array(array, "Jack")
p array
太棒了。謝謝。是否有可能以任何方式創建只有一個參數? –
如果'array'是'object'的屬性,那麼你可以調用'object.add_to_array(「Rob」)'。 – moveson
@RobMatthews做到這一點,'add_to_array'變量必須能夠看到'array'變量。這可以通過某些方式完成。其中之一是用'@'聲明'array'前綴,如下所示:'@array = []'。我剛剛創建了[主要](https://gist.github.com/lucasrodcosta/21ba8b2d3193f6786e6813805bcd8bb3)並提供了可能的解決方案。希望它有用=) –
是否有你不能使用.push
理由嗎?這是紅寶石
https://ruby-doc.org/core-2.2.0/Array.html#method-i-push
array = Array.new
=> []
name = "Rob"
other_name = "Jack"
yet_another_name = "Jeff"
array.push(name)
=> ["Rob"]
array.push(other_name, yet_another_name)
=> ["Rob", "Jack", "Jeff]
爲
Array
秒的默認方法重寫'在該方法的每次調用一個新的數組array'。此外,'array'是一個局部變量,在方法範圍之外不可用。 – spickermann那麼我的解決方案是什麼?我需要將array = []放在方法之外嗎?我將如何打印數組? –