我正在使用 collect 方法来更改数组的值。我期望数组的值会改变,但这并没有发生。在下面的代码中,数组被初始化并且值被设置为 1,2,3,4,5。我将这些值打印到屏幕上,以显示任何更改之前的值。
将原始数组打印到屏幕后,我遍历数组并使用任何可枚举的 .collect 方法更改值。
当我将 'arr' 的值打印到屏幕上时(请参见下面的最后一行代码),它会打印与开始数组完全相同的输出!简而言之,'arr' 的值在使用 collect 遍历数组之前和之后是相同的。我希望第一个看跌期权是 [1,2,3,4,5],第二个看跌期权是 [2,4,6,8,10]。
你能看到我在这里错过了什么吗???
arr = [1,2,3,4,5]
puts arr # outputs 1 2 3 4 5
arr.collect { |x| x * 2 }
puts arr # still outputs 1 2 3 4 5 - not 2 4 5 8 10 as I expect
在相关说明中,我可以根据需要更改 collect with map(和 map with collect)还是有区别?
在此先感谢您的帮助!