2

以下では、どちらも同じものを出力します。< ではなく <<-END のように、<< の後に - を付けるという点がよくわかりません

class Poem


def initialize
    @text = <<END
"Faith" is a fine invention
When Gentlemen can see
But Microscopes are prudent
           In an Emergency.
(Emily Dickinson 1830-1886)
END
  end
  def recite
    puts @text
  end
end

poem = Poem.new
poem.recite

class Poem1
  def initialize
    @text = <<-END
"Faith" is a fine invention
When Gentlemen can see
But Microscopes are prudent
           In an Emergency.
(Emily Dickinson 1830-1886)
    END
  end
  def recite
    puts @text
  end
end

poem1 = Poem1.new
poem1.recite
4

1 に答える 1

4

-文字の後のマイナス記号<<は、ターミネータをインデントできることを意味します。

したがって、ヒア ドキュメントが で始まる場合は、行頭で で@text = <<END終了する必要があります。ENDただし、@text = <<-ENDでは、 の前にスペースを入れることができますEND

    @text = <<-END
"Faith" is a fine invention
When Gentlemen can see
But Microscopes are prudent
           In an Emergency.
(Emily Dickinson 1830-1886)
    END
#^^^ Here white space
于 2013-11-15T06:35:51.383 に答える