Как называются <- Ruby Strings?И как мне вставить переменные в них? - PullRequest
3 голосов
/ 05 августа 2011

<-- Кажется, что невозможно найти в Интернете, поэтому пришлось задать вопрос здесь.

Какое у них имя для поиска и как добавить переменные в строку?

Ответы [ 3 ]

8 голосов
/ 05 августа 2011

Этот синтаксис предназначен для объявления ЗДЕСЬ ДОКУМЕНТА http://www.ruby -doc.org / docs / ruby-doc-bundle / Manual / man-1.4 / syntax.html # here_doc

Существует строковая форма строковых литералов, которая обычно называется «здесь документ».После << вы можете указать строку или идентификатор для завершения строкового литерала, и все строки, следующие за текущей строкой до терминатора, являются значением строки.Если терминатор заключен в кавычки, тип кавычек определяет тип строкового литерала, ориентированного на строку.Обратите внимание, что между << и терминатором не должно быть пробела. </p>

Если - - ставится перед разделителем, то все начальные символы whitespcae (табуляции или пробелы) удаляются из строк ввода и строки, содержащей разделитель.Это позволяет вставлять здесь документы внутри скриптов естественным образом.

Относительно интерполяции ссылка дает больше деталей, но она похожа на строку в двойных кавычках, если ваша строка разделена, как показано ниже (игнорироватьцветовое форматирование этой страницы)

<<-HERE
   I can interpolate #{foo}
HERE

тогда как она похожа на строку в одинарных кавычках

<<-'HERE'
 This will print out #{foo} as text
HERE

Также оригинальная кирка является хорошим источником http://www.ruby -doc.org /документы / ProgrammingRuby / html / language.html

2 голосов
/ 05 августа 2011

<<-FOO здесь документ. Вы можете узнать больше о них здесь .

И здесь также работает регулярная интерполяция.

str = <<-STR
  #{foo}
STR
0 голосов
/ 05 августа 2011
<<HEREDOC
This is like a double quoted string
Interpolation happens here. #{1+2}
Backslashes are interpreted as escapes. \a\t
HEREDOC

http://jeff.dallien.net/posts/optional-behavior-for-ruby-heredocs

...