小编bil*_*ill的帖子

如何理解Ruby的.each和.map

我无法理解之间的差异mapeach,以及何时何地使用它们.

我读过" 地图做什么? "和" 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,我把这些例子都拿走了.

ruby arrays

5
推荐指数
1
解决办法
1183
查看次数

红宝石示例中.self的用法是什么

我一直在读我的教科书,我们上了课,关键词self出现了。我一直在阅读有关tutorialpoint的一些教程,并且阅读了许多SO问题,但是由于某些原因,它只是没有点击我的“ ruby​​ self”,所以我决定自己修改一些示例

考虑

class Box
   # Initialize our class variables
   @@count = 0
   def initialize(w,h)
      # assign instance avriables
      @width, @height = w, h

      @@count += 1
   end

   def self.printCount()
      puts "Box count is : #@@count"
   end

end

# create two object
box1 = Box.new(10, 20)
box2 = Box.new(30, 100)

# call class method to print box count
Box.printCount()
Run Code Online (Sandbox Code Playgroud)

如果self.printCount()方法中删除,为什么会出现错误?我知道self区分类变量和实例变量非常重要,就像我的示例@width,@height@@count

因此,我的想法是,由于我要修改类变量@@count,因此我要使用.self关键字,因为我要修改类变量。因此,每当要更改类变量时,都必须使用form …

ruby

1
推荐指数
1
解决办法
149
查看次数

标签 统计

ruby ×2

arrays ×1