1

バックスラッシュを使用して、Ruby ステートメントを次の行に続けました。

print abc \
+ def

私は物事を爆破するのが好きなので、バックスラッシュの後にスペースを追加しましたが、案の定、エラーが発生しました:

予期しない $undefined、$end を期待

$undefined はグローバル変数であり、コンパイラが認識しないものすべてを意味すると思います。この場合、バックスラッシュの後のスペースです。

$end は「行末」文字を参照するグローバル変数ですか?

これらのグローバルは私のプログラムでグローバルなだけですか、それともそれよりもグローバルですか? 彼らはどれほどグローバルなのでしょうか?

4

3 に答える 3

7

これらはグローバル変数ではありません。これは、パーサーが使用する単なる表記です。 $undefined意味のない空白またはトークンを意味するように見えます。 $end行またはステートメントの終わりです。

于 2009-02-25T00:42:22.723 に答える
2

$ は、パーサー/レクサーがトークンを記号化するために使用する単なる省略表現であり、実際に使用できる変数ではないと思います。

于 2009-02-25T00:38:59.283 に答える
1

$undefined は、"\" によって作成されたレクサー トークンを参照しています。これは、構文的に有効な ruby​​ ではありません。

ファイルの終わりの $end lexer トークン。

-- マーカスQ

于 2009-02-25T06:56:23.150 に答える