スポンサーリンク

【Ruby】sliceメソッドとは??slice!メソッドとの違いも丁寧に解説します!!

みなさんこんにちは!
のむ(@nomu_engineer)です!

今回の記事では、「sliceメソッドの使い方」と「slice!メソッドとの違い」について説明していきたいと思います!
簡単に説明すると、sliceメソッドとは配列や文字列から指定した要素を取り出すことができるメソッドです。

この記事を読むメリット
・sliceメソッドにの役割や使い方を知ることができる
・slice!メソッドとの違いを知ることができる。

この記事を読むおすすめの読者
・プログラミング初心者
・駆け出しエンジニア
・sliceメソッドについて知りたい方

それでは早速本題の方に入っていきたいと思います!

sliceメソッドとは

sliceメソッドとは前述しましたが、配列や文字列から指定した要素を取り出すことができるメソッドです。
つまり、配列と文字列が持つメソッドということになります。

sliceメソッドとslice!メソッドの違い

この二つの違いは元の値に変化を与えるか、変化を与えないかの違いです。

sliceメソッドの場合は要素を取り出しても、元の値はそのままです。
そのままというのは、取り出した要素も元の値に残っているということです。

slice!メソッドの場合は取り出したようをが元の値からなくなるということです。
実際にコードを見てもらうほうが早いと思うので、この記事の最後の方にコードを載せています。

slice!メソッドのように「!」がつくメソッドを破壊的メソッドと言います。
破壊的メソッドは元の値を変化させるメソッドです。

sliceメソッドの記述の仕方

それでは実際にコードを書いて説明していきたいと思います!

まずは配列から、sliceメソッドを使って要素を取り出す方法からです。

引数に添字を指定することで、指定した添字の要素を取り出すことができます。
※添字は「0」から始まります。

要素を取り出すという表現をしていますが、要素を取り出しても、元の配列の中身から取り出した要素がなくなるということではありません。

つまり、上記のコードで言うと、「3」をsliceで取り出していますが、arrayの配列の中には「3」は残ったままになると言うことです。

ここは勘違いする人もいると思いますので、注意しましょう!

引数の箇所の記述の仕方を変えること、範囲を指定した取り出し方もできます。
例えば、下記の記述の仕方もできます。

num = array.slice(3.2)
=> [3.4]

引数の(3.2)は添字の3番目から2個分の要素を指定しているということです。
なので、結果として、3と4を取り出します。

もう一つ、紹介しておきます。

num = array.slice(3..6)
=> [3.4.5.6]

この書き方は添字の3番目から6番目までの要素を取り出す記述です。
なので3と4と5と6を取り出すことになります。

次に文字列の取り出しです。
文字列の取り出しも配列と一緒です!

それでは実際にコードを見ていきましょう!

上記のように引数にを添字を指定することで、要素を取り出すことができます!
上記のコードは添字の3に当てはまる、「d」が取り出されています。

文字列も配列と同じで、sliceで要素を取り出していますが、元の文字列の値はそのままになるということです。

もし、元の値から要素を取り出して、元の値から要素を削除したい場合はslice!メソッドを使いましょう!

sliceの後ろに「!」をつけるだけです。
これは破壊的メソッドと呼ばれ、元の値に変化を与えるメソッドです。

配列、文字列共にslice!メソッドを使うことができます。
使い方はsliceメソッドと同じです。

違うのは取り出した値が、元の値から消えるということです。
実際にコード見てもらったほうが早いと思うので、下記のコードを見てください!

ここのようにslice!メソッドを使うことで、元の値から「d」が消えることになります。

最後に

以上がsliceメソッドの解説です!
最後にまとめた終わりたいと思います!

①sliceメソッド
・・・配列や文字列から指定した要素を取り出すメソッド

②slice!メソッド
・・・配列や文字列から指定した要素を取り出すメソッド

③sliceメソッドとslice!メソッドの違い
・・・sliceメソッドは要素を取り出しても元の値に変化を与えないが、slice!メソッドは元の値に変化をもたらす。

覚えた置いて損はないと思うので、しっかり抑えておきましょう!

ありがとうございました!

スポンサーリンク




この記事を書いた人