我想知道为什么以下内容不会修改数组。
我有这个:
@card.map!.with_index {|value, key| key.even? ? value*=2 : value}
它只是迭代一个数组,并将所有偶数键的值加倍。
然后我做:
@card.join.split('').map!{|x| x.to_i}
它将数组连接成一个巨大的数字,将它们拆分为单独的数字,然后将它们映射回数组中的整数。从第 1 步到第 2 步的唯一真正变化是第 1 步看起来像 a=[1,2,12],而第 2 步看起来像 a=[1,2,1,2]。对于第二步,即使我使用 .map!当我 p @card 时,它在第一步之后看起来完全一样。如果我想继续使用他们的新数组,我必须将第二步 = 设置为某些东西。为什么是这样?有没有.map!在第二步中没有修改数组到位?还是方法的链接否定了我这样做的能力?干杯。