【Ruby3.x】Array::values_at()メソッドの使い方
values_atメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
values_atメソッドは、RubyのArrayクラスに属し、配列から指定された複数のインデックスに対応する要素を新しい配列として取得するメソッドです。
このメソッドは、引数として一つ以上のインデックス(整数、または範囲)を受け取ります。指定された各インデックスに合致する要素を、引数で指定された順序で新しい配列に格納し、その新しい配列を返します。インデックスは0から始まり、正の数を指定すると配列の先頭から、負の数を指定すると配列の末尾から要素を数えます。例えば、-1は配列の最後の要素を指します。
また、1..3のような範囲(Rangeオブジェクト)を引数として指定することで、複数のインデックスを一括して指定し、その範囲内の要素を抽出することも可能です。もし指定されたインデックスが配列の範囲外であった場合、その位置にはnilが挿入されます。元の配列自体はvalues_atメソッドによって変更されることはありません。
例えば、[10, 20, 30, 40, 50].values_at(0, 2, 4)とすると、[10, 30, 50]という新しい配列が返されます。また、[10, 20, 30, 40, 50].values_at(1..3, 0)のように範囲と個別のインデックスを組み合わせることもできます。このメソッドは、配列から特定の複数の要素を効率的にまとめて取り出したい場合に非常に役立ちます。
構文(syntax)
1[10, 20, 30, 40, 50].values_at(0, 2, 4)
引数(parameters)
*rest
- *rest: 取得したい要素のインデックスを可変長引数として指定します。
戻り値(return)
Array
指定されたインデックスに対応する要素を、指定された順序で格納した新しい配列を返します。