【发布时间】:2018-03-16 19:54:23
【问题描述】:
我想实现一个表数据结构。也许你可以推荐一个更好的替代方案,但是由于 Ruby 不提供对多维数组的内置支持,最近的解决方案是使用 Hash 和 Array 作为索引
pseudoTable = Hash.new
pseudoTable[[0,"id"]] = 23
pseudoTable[[0,"name"]] = "Hans"
现在我尝试了以下
class MyTable
attr_accessor :id, :table_hash
def [](a,b)
@table_hash[[a,b]]
end
end
那么,在 Ruby 中是否可以为 def []() 提供两个参数?
如果没有,您能否推荐另一种方法(比 Hash 等更适合的内置数据结构)来实现一个能够动态扩展的表并获得可顺序迭代的奖励积分?
【问题讨论】:
-
“在 Ruby 中不能给 def []() 提供两个参数吗?” – 你刚刚做到了。是有错误还是什么?
标签: arrays ruby multidimensional-array