こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 Rubyで配列に指定したインデックスへ要素を追加できるinsertメソッドについて
- insertメソッドとは
- insertメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
Rubyのインストールは、下の記事をご参考ください。
insertメソッドとは
insertメソッドとは、配列に指定したインデックスへ要素を追加するメソッドです。
insertメソッドのサンプルは、以下になります。
1 2 |
sample = ["a", "b", "c"] sample.insert(1, "d") |
上記を実行すると、配列sampleは
1 |
["a", "d", "b", "c"] |
になります。
insertメソッドに指定する引数の意味は以下になります。
- 第一引数:追加するインデックス
- 第二引数以降:追加する要素
第二、第三と複数引数が設定されている場合、第一引数のインデックスに第二引数からの値を一度に配列へ追加することができます。
第一引数のインデックスには
- 正の整数
- 負の整数
を設定することができます。
正の整数の場合、配列の先頭から数えた位置に要素が追加されます。
要素数以上のインデックスを指定してもOKです。
例外にならず、指定したインデックスに追加されます。
元の配列から追加した要素の前までは、【nil】が指定されます。
負の整数の場合、追加する要素の位置は配列の末尾から計算されます。
注意点として、指定するインデックスの絶対値は配列の要素数と追加したい要素の数以下にする必要があります。
たとえば
1 2 |
sample = ["a", "b", "c"] sample.insert(-5, "d") |
と指定して実行すると
1 2 3 |
Traceback (most recent call last): 1: from insert_sample.rb:2:in `<main>' insert_sample.rb:2:in `insert': index -5 too small for array; minimum: -4 (IndexError) |
とシステムエラーとなります。
では、次の章で実際に使ってみます。
insertメソッドを解説するプログラムの概要
insertメソッドを解説するプログラムでは、指定するインデックスを
- 正の整数
- 負の整数
の2パターンで実行します。
指定したインデックスに要素が追加されているかを表示させて確認します。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
puts "■insertメソッドサンプル" puts puts "・パターン1:正の整数" fruits_array = ["みかん", "ぶどう", "メロン"] puts "insert実施前:#{fruits_array}" fruits_array.insert(5, "もも", "いちご") puts "insert実施後:#{fruits_array}" puts puts "・パターン2:負の整数" fish_array = ["ブリ", "カツオ", "マグロ", "カンパチ"] puts "insert実施前:#{fish_array}" fish_array.insert(-2, "サバ") puts "insert実施後:#{fish_array}" |
実行結果
実行して指定したインデックスに要素が追加できているかを確認します。
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 5 6 7 8 9 |
■insertメソッドサンプル ・パターン1:正の整数 insert実施前:["みかん", "ぶどう", "メロン"] insert実施後:["みかん", "ぶどう", "メロン", nil, nil, "もも", "いちご"] ・パターン2:負の整数 insert実施前:["ブリ", "カツオ", "マグロ", "カンパチ"] insert実施後:["ブリ", "カツオ", "マグロ", "サバ", "カンパチ"] |
指定したインデックスに要素を追加できていることが確認できました!
まとめ:insertメソッドを使ってみよう!
以上がinsertメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント