假设我在 Ruby s1 中有一套:
#<Set: {12, 25}>
我使用 s1.find_index(12) 来获取索引 0 我可以使用索引来取回设置的元素,例如 s1[0] 来取回 12 吗?
我想这样做的原因是我的集合元素很大。 我想存储集合元素之间的链接。 我使用索引来存储链接。
我使用的是 Ruby 1.9.3
我认为您想为此使用
Array
和 Hash
。
ary = []
hsh = {}
unless hsh[item]
hash[item] = ary.size
ary << item
end
然后,当您稍后在
hsh
中查找该项目时,您将在列表中获得该项目的索引,并且实际上您将获得带有特定警告的集合的内部结构
这可能是不可能的。 Set 是一个无序列表。
Set 实现了不重复的无序值的集合。这是 Array 直观的互操作设施和 Hash 的快速查找的混合体。
您可以通过以下方式从集合中获取元素:
my_set = Set.new([1, 4, 7])
if index = my_set.find_index(4)
puts my_set.to_a[index]
end
您可以将集合转换为数组并使用索引访问其中的每个元素。