Leon's Blogging

Coding blogging for hackers.

Ruby - Heredoc (<<, <<-, <<~)

| Comments

多行文字的輸入

  • 第一個 <<EOF:表示把內容當作標準輸入程式stdin (Standard Input)
  • 第二個 EOF:表示定義的 “文字流"(stream)終止
  • EOF 要換什麼字都可以
  • 可以加上 * 重複字串 <<USAGE * 3

<<

  • 最後面的 USAGE,前面不能有空格
  • output 不會自行縮排
1
2
3
4
5
6
7
8
9
def c
  <<USAGE
    1
    2
USAGE
end

c
# => "    1\n    2\n"

<<-

  • output 不會自行縮排
1
2
3
4
5
6
7
8
9
def b
  <<-USAGE
    1
    2
  USAGE
end

b
# => "    1\n    2\n"

<<~

  • output 會自行縮排
1
2
3
4
5
6
7
8
9
def a
  <<~USAGE
    1
    2
  USAGE
end

a
# => "1\n2\n"

參考文件

Comments