繁体   English   中英

Ruby数组哈希键

[英]Ruby array hash keys

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

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

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

liked_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来检查类类型,以验证它是一个哈希,确实是它返回的内容。 这是Ruby 1.9.3的固有问题还是我做错了什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM