Ruby Tips!

RubyのTipsを紹介します

Rubyの文字列リテラルについて

Rubyには多数の文字列リテラルが存在する。1つずつ見てみよう。

まず式展開が不要な文字列はシングルクオート'を使う。'\以外、エスケープが不要なのも利点である。

p 'foo' #=> "foo"

式展開が必要な文字列はダブルクオート"を使う。Rubyの文字列の中で最も基本的なリテラルと言えるだろう。

p "foo" #=> "foo"

式展開が不要で、記号を多用したい場合は、%qによる文字列リテラルが便利だ。リテラルを囲う文字は自由に選択できる。また改行を含むこともできる。

p %q(foo) #=> "foo"

%Q%qの式展開ありのバージョンだ。式展開が必要な場合はこちらを使う。

p %Q(foo) #=> "foo"

文字列が複数行に渡る場合はヒアドキュメントを使うと良い。ヒアドキュメント中でも式展開が利用できる。

p <<STR
foo
bar
buz
STR
#=> "foo\nbar\nbuz\n"

ヒアドキュメントは<<の代わりに<<-を使うと、終端行をインデントすることができる。

  p <<-STR
foo
bar
buz
  STR
#=> "foo\nbar\nbuz\n"

また識別子を'で囲んだシングルクオートヒアドキュメントでは、\を含めて、囲んだ文字列がそのまま文字列となる。

p <<'STR'
foo\
bar\
buz\
STR
#=> "foo\\\nbar\\\nbuz\\\n"