【问题标题】:Ruby array hash keysRuby 数组哈希键
【发布时间】:2015-02-10 10:28:23
【问题描述】:

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

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

所以我在想如何只做一个哈希。

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

或者类似的东西。

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

使用数组作为哈希键有什么问题吗?

【问题讨论】:

    标签: ruby


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多