Руби ставит < - PullRequest
       20

Руби ставит <

0 голосов
/ 19 марта 2012
puts <<PARAGRAPH
There's somthing going on here.
With the PARAGRAPH thing
We'll be able to type as much as we like.
Even 4 lines if we want, or 5, or 6 .
PARAGRAPH

Это может работать, используя Блокнот ++

Но почему это не может работать?

puts <<PARAGRAPH
aaaa Aa
aaa
AA
PARAGRAPH

test.rb: 1: синтаксическая ошибка, неожиданный tCONSTANT, ожидается $ end

Спасибо!

Ответы [ 4 ]

2 голосов
/ 19 марта 2012

Я предполагаю, что в вашем втором фрагменте PARAGRAPH находится не в начале строки.

Многострочные строки в ruby, странные в этом смысле.Символ завершения (каким бы он ни был) должен быть первым на строке, завершающим строку, в противном случае вы часто будете видеть синтаксические ошибки.

1 голос
/ 17 октября 2013

Код работает для меня. Один способ, которым я сломал это, был, добавив пробел между << и PARAGRAPH </p>

puts << PARAGRAPH
PARAGRAPH

Это отличается от следующего примера.

puts <<PARAGRAPH
PARAGRAPH

Редактировать: Продолжая играть, я обнаружил, что PARAGRAPH, как и любой другой заполнитель. Вы можете сделать следующее, и вы все равно получите абзац в строке

puts <<ANYTHING_YOU_WANT
ANYTHING_YOU_WANT

Я подумал, что это круто, что оно не ограничивается только словом ПАРАГРАФ. Я не знал

1 голос
/ 19 марта 2012

Убедитесь, что PARAGRAPH (второй экземпляр) - это а) написано так же, как ваш первый экземпляр, и б) в начале строки, или измените код на:

def go
  puts <<-PARAGRAPH   # hyphen allows the end marker to be indented
    Hi mom!
  PARAGRAPH
end

Для получения дополнительной информации прочтите вступление к Strings и полное описание .

0 голосов
/ 13 марта 2014

Я могу получить любую версию с ошибкой, добавив дополнительные пробелы после последнего PARAGRAPH.

Убедитесь, что закрывающий PARAGRAPH действительно находится на новой строке (за ответ deadthreetimes) и не имеет завершающегосимволы (т.е. пробелы, символы табуляции и т. д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...