Rubyで多次元配列を作成する方法。 Rubyは多次元配列を明示的にサポートしていませんが、言語の基本的な知識があれば、自分で実装できます。 本質的には、配列の各要素がさらに別の配列を保持する「配列の配列」を作成する必要があります。 Rubyでこのような多次元配列を作成するには、配列の配列を生成するために使用するメソッドを記述して、コードを繰り返す必要がないようにすることができます。
Rubyで多次元配列を作成する
ステップ1
メソッドのスケルトンを記述します。 このメソッドは、いくつかの次元引数を取り、それらの次元の空の多次元配列を返します。 たとえば、10x10配列の場合、このメソッドを呼び出しますmda(10,10):def mda(width、height)end
今日のビデオ
ステップ2
幅要素の配列を作成します。
ステップ3
配列内のすべての要素に対して高さ要素の配列を作成します。 これにより、2次元配列として使用される「配列の配列」が作成されます。 特定の長さの空の配列を作成するには、引数として長さを指定してArray.newコンストラクターを使用します。 最初は、配列内のすべての値はnilになります。
ステップ4
マップを使用してください! メソッドも。 地図! メソッドは、配列内のすべての要素を繰り返し、すべての要素に対してブロックを実行し、ブロックの結果を配列要素に割り当てます。 forループを使用しても同じ結果が得られますが、マップです。 メソッドはより簡潔です:def mda(width、height)a = Array.new(width)a.map! {Array.new(height)} return aend
ステップ5
この配列を添え字(角括弧[])演算子とともに使用します。 たとえば、「a」という10x10の配列があり、7,3要素が必要な場合は、a [7] [3]:a = mdaと言います。 (10,10)#配列に値を入力しますa [7] [5] = "a string" a [2] [9] = 23#値を取得しますputs a [7] [5] puts a [2] [9]
ステップ6
Rubyでメソッド呼び出しを「チェーン」する機能を利用してください。 たとえば、Array.newメソッドは配列を返します。 別のメソッド呼び出しをそれにチェーンして、返された配列のメソッドを呼び出すことができます。 メソッドをチェーンし、returnステートメントを使用しないため、変数名も必要ありません。defmda(width、height)Array.new(width).map!{Array.new(height)} end
ヒント
Rubyは非常に表現力豊かです。 MDAメソッドは、短く簡潔な1行のコードにすることができます。 余分な行とキーワードは、コードを実際よりも複雑に見せかけるだけです。 Rubyではreturnステートメントは必要ありません。 Rubyのメソッドとブロックは、メソッドまたはブロックで最後に実行されたステートメントの結果を自動的に返します。