Ruby数组哈希键

基本上我正在使用2D矩阵。 我可以通过指定(x,y)对来获取矩阵的元素,以获得该位置的相应值。

现在,我还希望能够跟踪在运行时任意确定的某些对。 例如,我可能需要跟踪(1,2),(3,4)和(5,6)的值,也许我需要经常检索该位置的值。

所以我在考虑如何制作哈希。

 likes_elements = {[1,2] => M [1,2],[3,4] => M [3,4],[5,6] => M [5,6]}

或类似的东西。

然后我可以快速迭代哈希并获得我喜欢的元素。

使用数组作为哈希键是否有任何问题?

如果它真的是一个矩阵(一个数组数组),那么你可以像这样传入坐标

matrix = [[:a, :b, :c],[:d, :e, :f], [:g, :h, :i]] matrix[0][1] # returns :b matrix[1][2] # returns :f matrix[2][3] # returns nil, since 3 is out of bounds 

是的,您可以将数组创建为哈希键。

 h = Hash[[0,1], matrix[0][1]] h[[0,1]] # returns :b 

之后不要修改数组(或者如果你这样做,请记得重新散列哈希)。

我目前正在制作一个二维数组,其中每个数组都指向一个特定的哈希映射。 每个地图都有自己的特定数据,我想检索密钥和值信息。 但是,当我引用一个数组(即A [0] [1]时,我无法访问哈希函数。

我通过使用A.class来检查类类型,以validation它是一个哈希,确实是它返回的内容。 这是Ruby 1.9.3的固有问题还是我做错了什么?