1

我使用以下代码创建了二维数组。但我不能在数组中存储值。数组的行和列动态增长。之前无法预测。

arr = Array.new {Array.new}

并且不能做这种事情......

arr[0][0] = "Ruby" 
4

1 回答 1

0

您可以在标准数组上创建一个抽象,就像这样

class MyArray < Array
    def [](idx)
        self.at(idx) ? self.at(idx) : self[idx] = []
    end
end

或者,您可以使用default_proc在指定索引处创建新数组的 Hash。或键为 [row, column] 的哈希。这将是大型数据集的最佳选择,因为您的操作将在 O(1) 时间内完成。

于 2013-03-28T12:55:55.847 回答