我按照这些说明为二维数组创建了一个自定义类。
class SparseArray
attr_reader :hash
def initialize
@hash = {}
end
def [](key)
hash[key] ||= {}
end
def rows
hash.length
end
alias_method :length, :rows
end
如何修改此类,以便可以使用 Object#each 遍历对象的第一级和第二级?请简单解释一下,我是新手。
我将如何在对象上使用 each 方法的示例:
sparse_array[0][0] = "row 1 column 1"
sparse_array[0][1] = "row 1 column 2"
sparse_array[1][0] = "row 2 column 1"
sparse_array.each do |row|
# sparse_array[0] on first iteration
row.each do |column|
# sparse_array[0][0] on first iteration
end
end