はじめに
Ruby学習の備忘録です。
文字列を繰り返す
Rubyにて「文字列を繰り返してください」は、
よくある問題です。
確か文字列に対して演算子を使えば
可能だったんじゃないかな…というわけでやってみました。
sample.rb
def hello
puts "こんにちは!" * 3
end
hello()
出力結果
こんにちは!こんにちは!こんにちは!
迫る勢いのこんにちは!が出力されました。
puts
メソッドは本来、改行を加えて出力されますが
どうやら演算子を使うと文字列が連結されてしまうんですね〜
確かに繰り返しているんだけど、
求めていたのは改行された「こんにちは!」でした。
特殊文字「\n」を使う
そこで使うのが\n
改行したいときに使える特殊文字です。
注意すべきは、ダブルクオートで囲むこと。
シングルクオートでは、ただの文字列として出力されてしまいます。
ダブルクオートで囲んだ場合
sample.rb
def hello
puts "こんにちは!\n" * 3
end
hello()
出力結果
こんにちは!
こんにちは!
こんにちは!
シングルクオートで囲んだ場合
sample.rb
def hello
puts 'こんにちは!\n' * 3
end
hello()
出力結果
こんにちは!\nこんにちは!\nこんにちは!\n
\n ←「やあ!」って感じに見えなくもないけど🙋♂️(笑)
timesメソッドでさらにスッキリ書く
times
は、整数オブジェクトに対して呼び出すことができるメソッドです。
整数の値だけ、ブロック内の処理が繰り返されます。
単純なものだと、ブロックパラメータなしで実行可能。
(ブロックとかブロックパラメータが何かというのはここでは割愛)
sample.rb
3.times do
puts "こんにちは!"
end
なお、do~endを省略した書き方、{~}を使うとさらにスッキリ!
sample.rb
3.times { puts "こんにちは!" }
出力結果
こんにちは!
こんにちは!
こんにちは!
あ、そういえば\n
書いてないけど、ちゃんと改行されましたね〜
演算子がなければ、puts
メソッドは
改行を加えて出力されることも改めて確認できました👏
おわりに
こんなところで疑問を感じる人はいないかもしれませんが😂
なんとなく〜で進んでつまずいた経験がたくさんあるので、
ほんの小さなことでも備忘録として残すのは、無駄ではない…はず。