Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。ようにコールすると、第一引数のインデックスから第二引数の文字数の部分文字列を返します。場合は2(0始まりなので1+1)文字目から3文字を取り出すことになります。ようにコールすると、第一引数のインデックスから第二引数の文字数の部分文字列をレシーバーから削除します。違ってレシーバー(削除済みの配列)ではなく、削除した要素が返されます。個の銅バッジ一部誤りがあったので修正いたしました。様からご指摘を頂きました。|0Rubyの標準ライブラリのメソッドにはレシーバのオブジェクトのコピーに何らかの操作を加えた結果を返すものレシーバのオブジェクト自体を変更するものがあり、前者を「非破壊的」メソッド、後者を「破壊的」メソッドと言います。同様の処理をする非破壊的メソッドと破壊的メソッドがある場合、破壊的メソッドの方のメソッド名に"!"をつけるのが慣習となっています。(あくまで同機能のメソッドがある場合でしかも慣習なので、一般的に「"!"がついていれば破壊的メソッド」ではないことに注意してください)slice/slice!もこのパターンで、前者は配列をスライスした結果を返し(元のオブジェクトはそのまま)、後者は呼び出したオブジェクト自体を変更します。破壊的メソッドの戻り値が何になるかはメソッド次第なので注意が必要です。slice!は削除した要素を返すのですが、「処理が行われればself、行わなければniL」を返すものもあります。#以後str2を操作してstrは触らないこういうコードで誤ってsub!を使ったとすると、変換が行われればどちらも同じ動きをしますが、変換が行われないとstr2はstrのコピーが入っているつもりが実際にはnilになります。変換がまれにしか行われない場合、これはかなりわかりにくいバグになります。非破壊的メソッドと破壊的メソッドの使い分けには十分注意してください。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。Railsをターミナルで環境設定する際のエラー(Warning:)について教えて下さい。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。