arrays - 将 + 或 += 与 array#map 一起使用?

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 + 12 + 13 + 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/

相关文章:

python - 在 Python 中用正则表达式替换 '(' 时出错

spring-webflux - Netty Http 客户端连接池

python - Python 何时从实例 __dict__ 返回到类 __dict__?

javascript - 如何在 redux-toolkit 中输入 'prepare' 函数

python - 计算数据框 Pandas 的多列中某个值的出现次数

html - 对 div 标签内的 span 元素应用边距和在 div 标签内应用边距有什么区别?

python - 如何在 Python 中对列表进行排序和过滤?

c++ - 如何从析构函数返回变量

c - 如何从内存中正确分配结构

javascript - 我如何在 react 中使用刷新 token