2017-05-04 1 views
0

SciTEというIDEで「LuaForWindows_v5.1.4-46.exe」をダウンロードしました。私はSciTEのインタラクティブなLuaのを使用設立されたルアは異なる通訳者ですか?

print(a) 

されていないassigned.Whenをexcuteしようとしたとき しかし、出力が「変数 『qqqqqq』を宣言されていない」されます。エルス 私はcmdが

lua -e "print(aaaa)" 

コマンドを使用して開いた場合、出力は「ゼロ」、私は本の中で見たのと同じになります。

なぜ、異なる理由が分かっているのですか?Luaには異なるインタープリターがありますか?

+1

おそらく、SciTE Luaには、いくつかの追加ライブラリが組み込まれています(宣言されていない変数を使用しないように厳密なライブラリなど)。 –

答えて

0

これは同じインタプリタです。 C++のようなLuaでは '関数のオーバーロード'が可能です。 Scite IDEはインタラクティブセッション中に印刷機能をオーバーロードし、より人間が読めるデバッグ情報を提供します。 (Sciteプログラムの著者による個人的な設計決定)ネイティブのLuaインタプリタのprint関数は宣言されていない変数に対してnilを出力します。 SciteでLuaスクリプトを実行すると、Sciteはスクリプトがすべての面で純粋なLuaインタプリタの動作を確認できるようにします。一般的に、Lua IDEのようなSciteでは、コード補完から欠落した 'end'文などを見つけるまで、設計とデバッグの間に小さなヘルパーを追加しようとしています。しかし、実行ボタンを押すと安心して、IDEはあなたのスクリプトにnuthinが表示されることを保証しますが、lua.orgはインタプリタをリリースします。

+0

(* @ o @ *)WOW。どうもありがとうございました! –

関連する問題