Arrays 如何获取元素';迭代时是否在数组中创建索引?

Arrays 如何获取元素';迭代时是否在数组中创建索引?,arrays,ruby,Arrays,Ruby,我想向ruby类数组添加一个方法。是否可以在迭代时引用数组及其索引 例如,我想创建一个方法来打印数组元素及其索引 array = [:a, :b, :c] array.print_elements_with_indexes # => a 1, b 2, c 3 如果您在类的作用域内,定义实例方法,则方法调用将首先针对self,这使得self.在本例中是可选的。您可以使用self.,其中一个方法是size,您可以使用它创建一个范围来迭代每个数组元素 class Array def d

我想向ruby类数组添加一个方法。是否可以在迭代时引用数组及其索引

例如,我想创建一个方法来打印数组元素及其索引

array = [:a, :b, :c]

array.print_elements_with_indexes
# => a 1, b 2, c 3
如果您在类的作用域内,定义实例方法,则方法调用将首先针对
self
,这使得
self.
在本例中是可选的。

您可以使用
self.
,其中一个方法是
size
,您可以使用它创建一个范围来迭代每个数组元素

class Array
  def do_something
    (0...self.size).each do |index|
        puts "Index #{index} value is #{self.at(index)}"
    end
  end
end

[1, 2, 3, 4].do_something
或者,您也可以使用Ruby的
Enumerable#each_和_index
,如下所示:

class Array
  def do_something
    self.each_with_index do |index, value|
        puts "Index #{index} value is #{value}"
    end
  end
end

[1, 2, 3, 4].do_something

将self.first
将self[0]
@CarySwoveland打印第一个元素只是一个例子。我对那种方法的解决方案不感兴趣。因此,如果我想引用数组索引,我会使用self?数组是
self
。偏移量
i
处的数组值为
self[i]
。要更改偏移量
i
处数组的值:
self[i]=4
。要将
5
添加到数组
self@CarySwoveland,您在cliff note文档方面比我更友善。OP
ruby
是迄今为止我使用过的最清晰、文档最丰富的语言之一。如果你想知道一些东西,比如从文档开始。@engineersmnky我一直使用这个ruby文档网页。。如果你告诉我我可以在那一页上找到数组的类实现细节,那么我希望你能告诉我,否则我看不到在哪里可以找到这种类型的信息。同样,我对打印第一个元素不感兴趣,这篇文章的读者真的很难理解吗????????我对引用数组索引感兴趣。确实很难理解你的意思,因为很多人误解了你的问题和你的例子。在看到您正在寻找的解决方案后,我将编辑您发布的问题,以更好地匹配您的实际问题。谢谢这是我正在寻找的解决方案。我也在stackoverflow之外找到了答案
class Array
  def do_something
    self.each_with_index do |index, value|
        puts "Index #{index} value is #{value}"
    end
  end
end

[1, 2, 3, 4].do_something