Вопрос

Я использовал обратную косую черту, чтобы продолжить оператор Ruby на следующей строке.

print abc \
+ def

Я добавил пробел после обратной косой черты, потому что мне нравится все раздувать, и, конечно же, я получил сообщение об ошибке:

неожиданный $undefined, ожидающий $end

Я предполагаю, что $undefined - это глобальная переменная, которая означает все, что видит компилятор и что он не распознает - в данном случае пробел после обратной косой черты.

Является ли $end глобальной переменной, которая ссылается на символ "конец строки"?

Являются ли эти глобальные значения просто глобальными в моей программе или они более глобальны, чем это?Насколько они глобальны?

Это было полезно?

Решение

Это не глобальные переменные.Это просто обозначение, используемое анализатором. $undefined по-видимому, означает пустое место или бессмысленный знак. $end является концом строки или оператора.

Другие советы

Я бы поспорил, что $ - это просто сокращение, которое анализатор / лексер использует для обозначения токена, а не фактической используемой переменной.

$undefined ссылается на токен лексера, созданный "\ " - это не синтаксически допустимый ruby.

токен $end lexer для обозначения конца файла.

-- МаркусК

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top