3-1-3 配列の要素を操作するその他の方法
配列に要素を追加する別の方法
配列の末尾に要素を追加する方法は演算子<<
を使うことで実現可能ですが、それでは任意の場所に要素を追加するにはどうすれば良いでしょうか?
この場合は、配列クラスのinsert
メソッドを使用します。insert
メソッドは、第一引数に配列の番号(添字/インデックス)を、第二引数に追加したい要素を指定して使います。
以下は、変数animals
の3番目の要素に文字列bird
を追加した場合の動作結果です。
irb(main):001:0> animals = ['dog', 'cat', 'mouse'] => ["dog", "cat", "mouse"] irb(main):002:0> animals.insert(3, 'bird') => ["dog", "cat", "mouse", "bird"] irb(main):003:0>
前ページ「3-1-2 irb上で配列を定義して格納されたデータを取り出してみよう」で末尾に要素を追加した<<
演算子を使う方法とは別に、配列の番号を指定して追加する方法もあります。
たとえば、前ページ「3-1-2 irb上で配列を定義して格納されたデータを取り出してみよう」の手順4で追加した変数animals
の末尾にbird
という文字列を追加したケースでは、新しく追加される配列の番号は3
なのでanimals[3] = 'bird'
と記述することができます。
また、配列クラスのpush
メソッドでも同様のことができます。push
メソッドは、配列の末尾に引数に指定されたデータを追加します。
先ほどの例では、animals.push = 'bird'
と記述することができます。
このように同じ内容のプログラムでも、色々な書き方ができることはRubyの面白い特徴の1つといえます。
配列の要素を削除する別の方法
前ページ「3-1-2 irb上で配列を定義して格納されたデータを取り出してみよう」の例では、配列の要素を削除するのにdelete
メソッドを使用しました。
このdelete
メソッドは削除したいデータを指定する方法でしたが、配列の番号を指定して削除したい場合はどうすれば良いでしょうか?
この場合は、配列クラスのdelete_at
メソッドを使用します。
delete_at
メソッドは、引数に配列の番号を指定することで該当するデータを削除することができます。
irbの出力
irbでは、p
メソッドで変数を確認しなくとも、実行後に式(Rubyのプログラム)の評価結果を出力してくれる機能が備わっています。
つまり、変数をそのままタイプすれば、その変数に代入されているデータを次の行の=>
以降で表示してくれます。
前ページ「3-1-2 irb上で配列を定義して格納されたデータを取り出してみよう」で、p
メソッドを使って表示する際に、出力結果が二重で表示されているのは、最初の行がp
メソッドの出力結果で、2行目の=>
で始まる行がirbが出力している結果です。
このように、irbはデバッグを行う上で非常に便利な機能が備わっています。