我想知道Ruby中的任何数据结构,它允许我们方便地存储数字对。
我想在列表中存储成对的数字,比如坐标,而不考虑顺序。
就像[(0,0), (0,1), ... (x,y)]
如果没有可以做到这一点的数据结构,那么我能用其他东西实现的最接近的是什么?
感谢。
答案 0 :(得分:3)
另一种方法是使用Struct定义Pair
之类的内容。
Pair = Struct.new(:x, :y) do
def to_s
"(#{x}, #{y})"
end
end
然后,yon可以将其用作其他内置数据结构。 [Pair.new(0,0), Pair.new(1,1)]
。
如果您认为构建Pair
的方式过于繁琐,请定义辅助方法Pair
。
def Pair(x, y)
Pair.new(x, y)
end
最后,[Pair(0,0), Pair(1,1)]
答案 1 :(得分:2)
您可以使用嵌套数组,如下所示:
array = [[0,0], [0,1], ... [x,y]]