これらの手順に従って、2次元配列のカスタムクラスを作成しました。
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 doを使用してオブジェクトの第1レベルと第2レベルを反復処理できるように、このクラスを変更するにはどうすればよいですか?簡単に説明してください、私は初心者です。
オブジェクトで各メソッドを使用する方法の例:
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