Qu'est-ce que $ fin non défini et $ référence dans Ruby?
-
06-09-2019 - |
Question
J'ai utilisé une barre oblique inverse pour continuer une instruction Ruby sur la ligne suivante.
print abc \
+ def
J'ai ajouté un espace après la barre oblique inverse, parce que j'aime faire sauter les choses, et, bien sûr, je suis une erreur:
$ inattendu non défini, attendre $ fin
Je suppose Undefined $ est une variable globale qui signifie tout ce que le compilateur voit qu'il ne reconnaît pas -. Dans ce cas, l'espace après la barre oblique inverse
est fin $ une variable globale qui fait référence au caractère « fin de ligne »?
sont ces GLOBALS mondial juste dans mon programme ou sont-ils plus global que cela? Comment ils sont global?
La solution
Ce ne sont pas des variables globales. C'est juste notation utilisée par l'analyseur. $undefined
semble signifier un espace vide ou un jeton sans signification. $end
est la fin d'une ligne ou une déclaration.
Autres conseils
Je parie que le $ est juste un raccourci que l'analyseur / lexer utilise pour symboliser un jeton, et non une variable réelle utilisable.
$ non défini fait référence au jeton lexer créé par « \ » -. Il n'est pas syntaxiquement rubis valide
$ end jeton lexer pour la fin du fichier.
- MarkusQ