为什么这些方法不允许我添加到数组?

时间:2016-11-10 20:33:06

标签: arrays ruby push

我不明白为什么我的代码不起作用有人可以帮帮我吗?我正在尝试创建一个方法,将项添加到数组的末尾。我认为我的问题在于我试图访问本地变量的最后一行代码......谢谢!

def add_to_array(name)
  array = []
  array << name
end

add_to_array("Rob")
add_to_array("Jack")

p array

2 个答案:

答案 0 :(得分:5)

问题是每次调用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

答案 1 :(得分:1)

您是否有理由不能使用.push?这是ruby中Array的默认方法

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]