【Ruby3.x】Array::slice!()メソッドの使い方
slice!メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
slice!メソッドは、Arrayクラスに属し、配列から指定された範囲の要素を取り出して新しい配列として返し、同時に元の配列からその要素を削除するメソッドです。このメソッドは、呼び出した元の配列の内容を直接変更する「破壊的」な操作を行うため、メソッド名の最後に「!」が付いています。
引数には複数のパターンがあり、取り出したい要素の指定方法に応じて使い分けます。一つ目のパターンは、slice!(index)のように、開始位置となるインデックスを一つ指定する方法です。この場合、指定されたインデックスの要素が一つだけ取り出されます。二つ目のパターンは、slice!(start, length)のように、開始位置のインデックスと、そこから取り出したい要素の数を指定する方法です。三つ目のパターンは、slice!(range)のように、範囲オブジェクト(例: 0..2や1...5)を使って複数の要素を一括で指定する方法です。
戻り値としては、取り出された要素を含む新しい配列が返されます。しかし、もし指定された範囲に該当する要素が一つもなかった場合は、nilが返されます。インデックスは0から始まり、負の数を指定することで配列の末尾からの位置を示すことも可能です。例えば、array.slice!(-1)は配列の最後の要素を取り出します。このメソッドを使用する際には、元の配列が意図せず変更されてしまう可能性があるので、その挙動をよく理解しておくことが重要です。
構文(syntax)
1[10, 20, 30, 40, 50].slice!(1, 2)
引数(parameters)
index, length
- index: スライスを開始する位置を指定する整数。指定された位置から要素が取得されます。
- length: 取得する要素の数を指定する整数。省略された場合は、indexから配列の末尾までが取得されます。
戻り値(return)
Object または Array または nil
指定された範囲の要素を配列から取り出し、取り出した要素を配列として返します。範囲の要素が1つも取り出されなかった場合はnilを返します。