Что делает ‹‹-CONSTANT?

return <<-HTML
  <li>
    <a href = "some-link">Link-Title</a>
  </li>
HTML

Для чего нужны ‹‹-HTML в первой строке и HTML в последней строке?


person Vijay Dev    schedule 05.01.2011    source источник
comment
@jleedev: Можно ли иметь ответ в качестве тега? :)   -  person Vijay Dev    schedule 05.01.2011
comment
Я считаю, что для вопросов типа «что это за синтаксис» добавление тега делает Интернет лучше.   -  person Josh Lee    schedule 05.01.2011
comment
@jleedev: Это позволяет людям использовать этот вопрос, чтобы пойти другим путем, то есть, если вы слышите термин heredoc и хотите знать, что это такое, вы можете выполнить поиск по тегам [ruby] [heredoc] и получить это вопрос.   -  person Platinum Azure    schedule 05.01.2011


Ответы (3)


Это гередок.

http://en.wikipedia.org/wiki/Here_document#Ruby

person cam    schedule 05.01.2011

Это здесь документ. По сути, это многострочный строковый литерал.

В строках после строки с <<-HTML это буквальные строки, объединенные символами новой строки -- до тех пор, пока не будет достигнут конечный маркер, который в данном случае равен HTML.

person Platinum Azure    schedule 05.01.2011

Чтобы явно ответить на вопрос, этот фрагмент возвращает строку:

<li>

<a href = "some-link">Link-Title</a>

</li>

person xaxxon    schedule 05.01.2011