Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby array.map!从0以外的索引开始_Ruby - Fatal编程技术网

Ruby array.map!从0以外的索引开始

Ruby array.map!从0以外的索引开始,ruby,Ruby,我正在尝试使用map对数组进行变异!,但启动索引1并保持索引0不变: test = [1, 2, 3, 4] test[1..-1].map!{ |n| n += 2 } puts test 我希望这种情况会再次出现 1 4 5 6 但它会返回未变异的数组。有人能解释为什么这不起作用吗?谢谢test=[1,2,3,4] 测试。地图!。指数{n,i | i==0?n:n+2} => [1, 4, 5, 6] 无法使用测试[1..],因为它会创建一个新数组。如果可能的话,我建议您避免变异数

我正在尝试使用map对数组进行变异!,但启动索引1并保持索引0不变:

test = [1, 2, 3, 4]
test[1..-1].map!{ |n| n += 2 }   
puts test
我希望这种情况会再次出现

1
4
5
6
但它会返回未变异的数组。有人能解释为什么这不起作用吗?谢谢

test=[1,2,3,4] 测试。地图!。指数{n,i | i==0?n:n+2} => [1, 4, 5, 6] 无法使用测试[1..],因为它会创建一个新数组。如果可能的话,我建议您避免变异数组操作。

test=[1,2,3,4] 测试。地图!。指数{n,i | i==0?n:n+2} => [1, 4, 5, 6]
无法使用测试[1..],因为它会创建一个新数组。如果可能的话,我建议您避免变异数组操作。

test[1..-1]返回该数组切片的副本。您的问题已经得到了回答,但有一个解决方案是test[1..-1]=test[1..-1];test=>[1,4,5,6]。test[1..-1]返回该数组切片的副本。您的问题已经得到了回答,但有一个解决方案是test[1..-1]=test[1..-1];test=>[1,4,5,6]。我建议您删除或详细说明您的最后一句话,因为变异数组操作是模糊的,原因和可能的情况都不清楚。当我认为你已经看到这条评论时,我会删除它。我建议你删除或详细说明你的最后一句话,因为变异数组操作是含糊不清的,而且原因和可能的情况都不清楚。我想你看到后会删除这条评论。