我不明白为什么我的代码不起作用有人可以帮我吗?我正在尝试创建一个将项目添加到数组末尾的方法。我认为我的问题在于我尝试访问本地变量的最后一行代码...谢谢!为什么这种方法不允许我添加到数组中?
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 = []放在方法之外吗?我将如何打印数组? –