rubyのslice!でめっちゃハマった
map!
は
各要素を順番にブロックに渡して評価し、その結果で要素を置き換えます。
https://docs.ruby-lang.org/ja/latest/class/Array.html#I_COLLECT--21
てことで、自分自身を書き換える。
array = [1,2,3,4,5] array.map!{ |a| a * 2 } # [2,4,6,8,10]になる
slice!
も同じノリと思ったら、
array = [1,2,3,4,5] array.slice!(0, 2) # [1,2]になると思ったら...
指定した要素を自身から取り除き、取り除いた要素を返します。取り除く要素がなければ nil を返します。
https://docs.ruby-lang.org/ja/latest/class/Array.html#I_SLICE--21
てことで、
戻り値 = [1, 2] array = [3,4,5]
になった。めちゃくちゃ時間を溶かしました。 ドキュメントはちゃんと読まないといけませんね。