0

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

4

1 回答 1

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)

这两种语法是等价的,但通常写第一种,更短的形式。

于 2013-05-13T21:37:45.120 回答