我無法理解map
和each
之間的區別以及何時何地使用它們。如何理解Ruby的.each和.map
我看了「What does map do?」和「Ruby Iterators」,但想要澄清一下。
如果我有:
z = [1,2,3].map {|x| x + 1}
map
需要每個元素的數組z
並添加一個到每個元素,但是除非我添加!
它不發生變異原數組。
在另一方面:
y = [1,2,3].each {|x| x + 1}
回報[1,2,3]
。這是令人困惑我,因爲:
names = ['danil', 'edmund']
names.each { |name| puts name + ' is a programmer' }
回報:
Danil is a programmer
Edmund is a programmer
究竟是什麼事情在我未允許每個數組元素將增加1
秒例如,儘管在過去的例如一個字符串正在附加到數組中的所有內容?
所有學分都歸斯佩蘭斯基達尼爾所有,我將這些例子從中取消。
「返回 達尼爾是一個程序員」 - 不。你很困惑。這不是返回值。這是塊的__side-effect__(它打印到標準輸出)。 '.each'的返回值仍然是原始的可枚舉值(在這兩行後面看到) –