Как называются ‹ Ruby Strings? И как мне вставить в них переменные?

<-- Похоже, в сети нет поиска, поэтому пришлось задать вопрос здесь.

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


person fivetwentysix    schedule 05.08.2011    source источник
comment
возможный дубликат Что делает этот фрагмент Ruby?   -  person Andrew Grimm    schedule 05.08.2011


Ответы (3)


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

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

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

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

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

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

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

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

person BF4    schedule 05.08.2011

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

И обычная интерполяция работает и здесь.

str = <<-STR
  #{foo}
STR
person Samuel    schedule 05.08.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

person Kelsin    schedule 05.08.2011