Ruby通过[]实现对集合成员的访问

时间:2013-05-13 21:31:15

标签: ruby member

有没有办法通过[]实现对集合成员的访问。我的意思是我必须编写一个链表,我想通过Coll [int]访问成员。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您的链接列表是否属于自己的类?如果是这样,您可以为该类定义[]方法:

class LinkedList

  ...

  def [](int index)
    node = @head
    index.times do
      node = node.next
    end
    node
  end

end

此代码假定成员变量@head引用列表中的第一个条目,并且方法#next返回列表中的下一个条目。它假定从零开始索引,并且没有错误处理索引超出范围。

在使用中,您可以按照自己的方式调用它:

linked_list[2]

Ruby认为这就像你写的那样:

linked_list.[](2)

这两个语法是等价的,但通常会写第一个较短的形式。