arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map {|n| n + 1}
arr2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map {|n| n += 1}
这些都返回 [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
但我不明白使用 + 或
+=
在 map 数组中。为什么我要使用一个而不是另一个?
最佳答案
在大多数情况下,在 ruby 中返回最后一个表达式。
在 block 内(在这两种情况下)您只有一个表达式,这将是每个项目的结果。
一个表达式是 n + 1
,这将是 1 + 1
、2 + 1
、3 + 1
等
另一个表达式是 n += 1
而这将是 n = n + 1
所以 n = 1 + 1
, n = 2 + 1
, n = 3 + 1
同样的结果,但是在第二个你做了一个额外的赋值
第一个表达式 n + 1
在某种程度上更有效,因为您不需要再次将值赋给 n
如果您需要在 block 内对 n
进行其他操作,则第二个表达式 n +=1
可能很有用
https://stackoverflow.com/questions/72312579/