icon
icon

Rubyでsliceメソッドを使う方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyでsliceメソッドを使う方法について現役エンジニアが解説しています。sliceメソッドとは配列から指定された要素切り取って返すメソッドです。指定方法にはインデックスを1つ指定する方法や指定位置から指定の長さを指定したり、範囲を指定する方法があります。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Rubyでsliceメソッドを使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

 

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。
 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Rubyでsliceメソッドを使う方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

sliceメソッドとは

配列から指定された要素を返します。指定の要素を切り取る(slice)イメージです。

切り取りたい部分を指定する方法は主に3つあります。

  • 「インデックスを一つ 指定」して、該当部分の要素を切り出す方法。
  • 「指定位置から指定の長さを指定」して、該当部分の要素を切り出す方法。
  • 「範囲を指定」して、該当部分の要素を切り出す方法。

配列だけでなく、文字列(String)クラスにも同名の slice メソッドがあります。使い方は一緒です。

ArrayクラスでもStringクラスでも メソッドの最後にビックリマーク(!)のついた破壊的メソッドがあります。

これはもとの配列や文字列を変化させるメソッドとなりますので、使用には注意が必要です。
 

sliceを使うメリットと使われるケース

配列や文字列から指定の要素を切り出すことができます。
 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

sliceメソッドを使う方法

配列をインデックスする

Arrayクラスのsliceメソッドを使用します。
 

文字列をインデックスする

Stringクラスのsliceメソッドを使用します。
 

実際に書いてみよう

# 配列を作成します。
arr = [0,1,2,3,4,5,6]
# 配列から引数で指定した要素を slice します。
a1 = arr.slice(1)
# 引数で指定した要素が slice されました。
p a1 #=> 1
# 配列はもとのままです。
p arr #=> [0,1,2,3,4,5,6]
# 「指定位置から指定の長さ」の要素をまとめて取りだすこともできます。
# インデックス2から3つ分の要素を slice します。
a = arr.slice(2,3)
# 引数で指定した要素が slice されました。
p a #=> [2,3,4]
# 配列はもとのままです。
p arr #=> [0,1,2,3,4,5,6]
# 引数は「範囲」で指定することもできます。
# インデックス2~3の要素を slice します。
a = arr.slice(2..3)
# 引数で指定した要素が slice されました。
p a #=> [2,3]
# 配列はもとのままです。
p arr #=> [0,1,2,3,4,5,6]
# 文字列を作成します。
str = "abcdefg"
# 文字列から引数で指定した要素を slice します。
s = str.slice(2)
# 引数で指定した要素が slice されました。
p s #=> "c"
# 文字列はもとのままです。
p str #=> "abcdefg"
__END__

 

実行結果

1
[0, 1, 2, 3, 4, 5, 6]
[2, 3, 4]
[0, 1, 2, 3, 4, 5, 6]
[2, 3]
[0, 1, 2, 3, 4, 5, 6]
"c"
"abcdefg"

 

まとめ

配列や文字列から指定の位置を切り出せました。とても便利ですね。

 

筆者プロフィール

メンター古川さん

Rubyが得意で、Webエンジニアとして最上流から最下流までセルフスターターとして活躍してきました。

近年 セミリタイアし、フリーランスとして適度に働きながら穏やかな生活を楽しでいます。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でも、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。