数组 – 如何理解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] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |