Существует ли эквивалент <<<EOD в Ruby/направляющих?

В PHP следующее позволило бы мне создавать строку, не имея необходимость выходить из кавычек..

$string = <<<EOD

',. whatever <"",'

EOD;

echo $string;

Действительно ли там что-нибудь подобно ему в Ruby/направляющих?

8
задан Marius Butuc 19 April 2013 в 21:49
поделиться

6 ответов

Heredoc-файлы Ruby почти такие же, с небольшими изменениями, и бывают двух разновидностей:

1) Конец-heredoc должен быть в начале строки:

string = <<EOD

  ',. whatever <"",'

EOD

puts string

2) Конец heredoc может предшествовать пробелу:

string = <<-EOD

  ',. whatever <"",'

       EOD

puts string
11
ответ дан 5 December 2019 в 04:58
поделиться

Ruby поддерживает многострочные строки, предоставляя два типа синтаксиса here doc. Первый синтаксис использует дополнительный дефис, но позволяет сделать отступ для разделителя «конец документа» (в примере - «eos»).

<<-eos
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor 
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.

eos

Другой синтаксис документа здесь не требует использования тире, но требует, чтобы разделитель «конец документа здесь» находился в столбце 1 (или перед ним не было пробелов).

<<eos

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor 
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud 
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute 
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.
eos
10
ответ дан 5 December 2019 в 04:58
поделиться

Здесь называется документ . По ссылке рубиновый путь будет выглядеть так:

puts <<-GROCERY_LIST
Grocery list
------------
1. Salad mix.
2. Strawberries.*
3. Cereal.
4. Milk.*

* Organic
GROCERY_LIST

Результат:

$ ruby grocery-list.rb
Grocery list
------------
1. Salad mix.
2. Strawberries.*
3. Cereal.
4. Milk.*

* Organic
10
ответ дан 5 December 2019 в 04:58
поделиться

Это называется heredoc, и это << WHATEVER в Ruby.

3
ответ дан 5 December 2019 в 04:58
поделиться
output = <<-TEXT
   my text
   block
TEXT

^что они сказали

1
ответ дан 5 December 2019 в 04:58
поделиться

вы можете сделать это так

string = <<EOD

',. whatever <"",'

EOD

puts string
2
ответ дан 5 December 2019 в 04:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: