1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】sliceメソッドとは?slice!との違いを例題を解いて理解しよう!

Last updated at Posted at 2020-12-30

概要

sliceとslice!の違いをまとめさせて頂きました。もっとわかりやすい表現などあればコメント、ご指摘いただけたら幸いです!

目次

  • sliceとslice!

    • slice
    • slice!
  • 実践

    • 問題
    • 解答(解説)
  • まとめ

  • 参考文献

sliceとslice!

【例】配列から1番目の要素を取り出し、もとの配列を出力する

ポイント

  • 配列や文字列から指定した要素を取り出すことができるメソッド
  • 要素を指定する際は数値
  • 先頭は0からはじまる

slice


array = [0, 1, 2, 3, 4, 5]
num = array.slice(1)

puts num
puts array

# ターミナル

# puts num の結果
# 1
# => 指定した要素の取り出し

# puts array
# 0
# 1
# 2
# 3
# 4
# 5

slice!

  • エクスクラメーションマーク(!)のつくメソッドを破壊的メソッドという
  • 要素を取り出すだけでなく元の形を変化させる
  • 指定した要素を削除させる
array = [0, 1, 2, 3, 4, 5]
num = array.slice!(1)

puts num
puts array

# ターミナル

# puts num の結果
# 1 
# => 取れる要素は変わらない

# puts array
# 0
# 2
# 3
# 4
# 5
# => 取り出した要素(1)が削除されている

実践

果物を例に slice を使って問題を解いていきます。

問題

任意の文字からn番目の文字を削除しその文字を出力するメソッドを作成しよう!

解答(解説)


def str_check(string, num)  # 文字列(string) と 何番目を削除したいのか(num)を受け取っている
  string.slice!(num - 1)    # 0番目からはじまるので -1 することで取り出したい文字を削除できる
  puts string               # slice! で削除した文字以外を出力することができる
end

# メソッド呼び出し
str_check('apple', 1)
str_check('orange', 2)
str_check('grape', 4)

# ターミナル出力結果

# pple
# oange
# grae

まとめ

  • sliceメソッドを使うことで文字列や配列から要素を取り出すことができる
  • 要素を取り出したいときは数値を指定する
  • 0番目から始まる
  • slice!メソッドを使うと元の文字列や配列の形を変えることができる

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?