gpt4 book ai didi

arrays - 如何理解 Ruby 的 .each 和 .map

转载 作者:数据小太阳 更新时间:2023-10-29 07:14:08 26 4
gpt4 key购买 nike

我无法理解 mapeach 之间的区别,以及何时何地使用它们。

我阅读了“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,而在最后一个示例中,字符串被附加到数组中的所有内容?

所有功劳都归于 Speransky Danil,我从他那里拿走了这些例子。

最佳答案

map 方法接受一个给定 block 的 enum,并通过它执行一些逻辑迭代。在您的情况下,逻辑是 x+1。正如你所说,除非你使用 !,否则它不会改变任何东西。

each 只是返回被调用的数组。

举个例子:

names = ["bob"]

如果我们这样做:

names.each{|names| names + "somestring"}

输出仍然是["bob"]。您的第二个示例不同的原因是 puts

作为练习尝试做:

y = [1,2,3].each {|x| puts x + 1}

您将获得:

2
3
4
[1,2,3]

关于arrays - 如何理解 Ruby 的 .each 和 .map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39146134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com