Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Arrayクラス > slice!
slice!(nth) -> object | nil
指定した要素を自身から取り除き、取り除いた要素を返します。取り除く要素がなければ nil を返します。
例:
a = [ "a", "b", "c" ] a.slice!(1) #=> "b" a #=> ["a", "c"] a.slice!(-1) #=> "c" a #=> ["a"] a.slice!(100) #=> nil a #=> ["a"]
slice!(start, len) -> Array | nil
slice!(range) -> Array | nil
指定した部分配列を自身から取り除き、取り除いた部分配列を返します。取り除く要素がなければ nil を返します。
以下のコードと同値です。
def slice!(*args) result = self[*args] self[*args] = nil result end
ですので以下のように配列の長さが拡張される場合もありえます。
a = [ "a", "b", "c" ] p a.slice!(5, 1) #=> nil p a #=> ["a", "b", "c", nil, nil]
例:
a = [ "a", "b", "c" ] a.slice!(1, 2) #=> ["b", "c"] a #=> ["a"] a = [ "a", "b", "c" ] a.slice!(1, 0) #=> [] a #=> [ "a", "b", "c" ] a = [ "a", "b", "c" ] a.slice!(-10, 1) #=> IndexError