fc2ブログ

2023.08 «  - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 » 2023.10
TOP > Ruby のヒアドキュメント(基礎編)

 ← Ruby のヒアドキュメント(発展編) | TOP | model のコールバック関数

Ruby のヒアドキュメント(基礎編) 

2008年09月08日 ()
Railsから離れてRubyネタです。

ヒアドキュメントについてRuby リファレンスマニュアルを参考に、もっと簡単に説明してみよう!と思いました。(が、簡単に仕上がったのかは疑問符が付く)

ヒアドキュメントは、簡単に言うと、文字列を見やすい形で複数行に渡って書く、という機能ですね。

例1:簡単な例

my_str =<<"EOS"
  私の文字列です
EOS



これは下と全く一緒の意味なのでした。

my_str = "  私の文字列です\n"



ポイントは
・"EOS" と EOS とで文字列をはさむ
・<< と 1 番目の "EOS" の間にスペースがあってはいけない
・2 番目の EOS の行は、先頭にスペースがあってはいけない
・文字列の各行の行頭のスペースは反映される
・文字列の各行の終わりには必ず\nが付いている

ちなみに、2カ所にあるEOSですが、自分の好きな文字に変えてもOKです。abcでも123でも。しかし、EOS が良く使われるそうです。



例2:複数行もいけるよ、の例

my_str2 =<<"EOS"
私の文字列です
さらに私の文字列です
EOS



これは下と全く一緒の意味なのでした。

my_str2 = "私の文字列です\nさらに私の文字列です\n"



ちょっとー、これじゃあフツーに文字列書いたのと同じじゃないの?

my_str2 ="
私の文字列です
さらに私の文字列です
"


と思うかもしれませんが、この文字列は↓と一緒で先頭に余計な改行が入ります。

my_str2 = "\n私の文字列です\nさらに私の文字列です\n"

(さらに文字列の中に直接ダブルクォーテーションを書けないのでエスケープしなくてはならない、という制限も加わります)


例3:文字列の中で式を展開できる、の例
1 番目の EOS をダブルクォーテーションで囲むか、何も囲まないかだと文字列の中で式を展開できます。

var1 = "文字列"
my_str3 =<<"EOS"
私の#{var1}です
さらに私の#{var1}です
EOS



これは下の値が代入されます。

私の文字列です\nさらに私の文字列です\n




1 番目の EOS をシングルクォーテーションで囲むと、式が展開されません。

var1 = "文字列"
my_str3 =<<'EOS'
私の#{var1}です
さらに私の#{var1}です
EOS



これは下の値が代入されます。#{var1}が展開されません (>_<)

私の#{var1}です\nさらに私の#{var1}です\n




次回は、発展編でも書いてみようかな?

【広告】

[2008.09.08(Mon) 17:12] Rubyの文法Trackback(0) | Comments(0)
↑TOPへ

 ← Ruby のヒアドキュメント(発展編) | TOP | model のコールバック関数

COMMENT

COMMENT POST















管理者にだけ表示

 ← Ruby のヒアドキュメント(発展編) | TOP | model のコールバック関数