0
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!メソッド 

Last updated at Posted at 2020-12-10

##一言
何日かぶりの投稿。
最近また中国語の勉強を始めました。
プログラミング面白いけど、行き詰まったらやる気が駄々下がりになる。
とにかくググりまくってる今日この頃です。

というわけど本題・・・

##slice!メソッドについて

先日は「sliceメソッド」について少々語ったわけですが、
今回は[!]がついてる方について語ろうと思います。

またまた以前に解いた問題の2回目に挑戦。
「任意の文字列の最初の2文字を最後尾に持ってこい」とのお達し。

※出力例:
left2("Hello") → lloHe
left2("java") → vaja
left2("Hi") → Hi

こんな感じに出せと・・・。

で、回答は

def left2(str)
  cutPaste = str.slice!(0, 2)
  puts str + cutPaste
end
※こちらの形はご指摘いただきました。
 引数として与えられたオブジェクトを破壊的に加工するようなメソッドが有用な場合もありますが,避けるのが無難です。
 コメント欄ご確認ください。

left2("Hello")
left2("java")
left2("Hi")

簡単に解説
任意の文字列から[slice!]を使い、最初の2文字を取り除きます。
 ↓
その後、取り除いたやつを後ろに足してあげる 

参考 slice! 公式リファレンス

カットアンドペーストしてあげた感じです。
解説を見ると・・・

puts str[2..-1] + str[0..1] 

簡単に説明すると、3文字目からの文字と、最初の2文字を指定。
最初の指定した2文字を後ろに持ってくるだけ。
これだけで十分だったというオチ・・・。

先日と同じようなオチですみません。
でもいろんな出し方があるという面白さもあるから飽きません。
また何か気づいたこと、気になったことありましたら投稿します。

0
0
2

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
0
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?