我无法理解之间的差异map
和each
,以及何时何地使用它们.
我读过" 地图做什么? "和" Ruby Iterators "但是想要一些澄清.
如果我有:
z = [1,2,3].map {|x| x + 1}
Run Code Online (Sandbox Code Playgroud)
map
获取数组中的每个元素z
并为每个元素添加一个元素,但是除非我添加,否则它不会改变原始数组!
.
另一方面:
y = [1,2,3].each {|x| x + 1}
Run Code Online (Sandbox Code Playgroud)
回报[1,2,3]
.这对我来说很困惑,因为:
names = ['danil', 'edmund']
names.each { |name| puts name + ' is a programmer' }
Run Code Online (Sandbox Code Playgroud)
收益:
Danil is a programmer
Edmund is a programmer
Run Code Online (Sandbox Code Playgroud)
在我的第二个例子中,不允许每个数组元素增加的内容是什么1
,而在最后一个例子中,字符串被附加到数组中的所有内容?
所有的学分都交给了Speransky Danil,我把这些例子都拿走了.