Что означает << DESC в рубине?

Я изучаю Ruby, и в книге, которую я использую, есть пример кода, подобного этому

#...
restaurant = Restaurant.new
restaurant.name = "Mediterrano"

restaurant.description = <<DESC
One of the best Italian restaurants in the Kings Cross area, 
Mediterraneo will never leave you disappointed
DESC

#...

Может кто-нибудь объяснить мне, что означает << DESC в приведенном выше примере? Чем он отличается от обычной двойной кавычки?

3 ответа

Решение

Используется для создания многострочных строк. По сути, "<< DESC" говорит ruby ​​учитывать все, что следует до следующего ключевого слова "DESC". "DESC" не является обязательным, поскольку его можно заменить на что-либо еще.

a = <<STRING
Here
is
a
multiline
string
STRING

За оператором<< следует идентификатор, который отмечает конец документа. Метка конца называется терминатором. Строки текста перед разделителем объединяются, включая переводы строк и любые другие пробелы. http://en.wikibooks.org/wiki/Ruby_Programming/Here_documents

Это позволяет создавать многострочные строковые константы в удобочитаемом виде. См. http://en.wikibooks.org/wiki/Ruby_Programming/Here_documents.

Это называется heredoc, или heredocument. Это позволяет писать многострочно. Вы можете проверить это в своем терминале!

Другие вопросы по тегам