加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – 如何理解Ruby的.each和.map

发布时间:2020-12-17 03:33:06 所属栏目:百科 来源:网络整理
导读:我无法理解地图与每个地图之间的差异,以及何时何地使用它们. 我读了“What does map do?”和“Ruby Iterators”,但想要澄清一下. 如果我有: z = [1,2,3].map {|x| x + 1} map获取数组z中的每个元素并为每个元素添加一个元素,但是除非我添加!否则它不会改变
我无法理解地图与每个地图之间的差异,以及何时何地使用它们.

我读了“What does map do?”和“Ruby Iterators”,但想要澄清一下.

如果我有:

z = [1,2,3].map {|x| x + 1}

map获取数组z中的每个元素并为每个元素添加一个元素,但是除非我添加!否则它不会改变原始数组.

另一方面:

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

返回[1,3].这对我来说很困惑,因为:

names = ['danil','edmund']
names.each { |name| puts name + ' is a programmer' }

收益:

Danil is a programmer
Edmund is a programmer

我的第二个例子中究竟发生了什么,不允许每个数组元素增加1,而在最后一个例子中,一个字符串被附加到数组中的所有内容?

所有的学分都交给了Speransky Danil,我把这些例子都拿走了.

解决方法

map方法在给定一些块的情况下获取枚举,并在执行某些逻辑时迭代它.在你的情况下,逻辑是x 1.正如你所说,除非你使用!否则它不会改变任何东西.

每个都只是返回被调用的数组.

我们举一个例子:

names = ["bob"]

如果我们这样做:

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

输出仍然是[“bob”].你的第二个例子不同的原因是看跌期权.

作为练习尝试做:

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

你会得到:

2
3
4
 [1,3]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读