2016-07-23 7 views
2

私は端末を作ろうとしていますが、1つのことに固執しています。 doerプログラムのコマンドでdo。 docomをloadstringの出力にします。 input = io.read()私のプログラムの中にあるlua端末ですが、何も出力を表示しません。関連するコードは次のとおりです。luaカスタム端末がコマンド出力を持たない

docom = loadstring(input) 
print(docom) 

出力をどのように表示しますか?現在のところ、このように:

welcome to the terminal! 
loaded 
do 
do: 
print("hello") 
function: 0x809b60 
do: 

3番目と5番目の行はユーザーの入力です。どのように私はこれを修正するので、関数名の代わりに文字列を表示します。私は同じluaスクリプトの中に他のものがあるので、これを管理できるようにしたい。助けてください。

+0

'assert(loadstring(input))()' –

答えて

0

おそらくprint(docom())が必要です。

loadstringスクリプトを関数にコンパイルします。それはあなたがfunction: 0x809b60と見るものです。

loadstringこの機能は実行されません。したがって、docom()と呼んでください。

docomがnilであるかどうかをチェックし、docomからpcallを呼び出して、エラー処理を追加することができます。

+0

ありがとうございました。私はしばらくの間LUAを行ってきましたが、ターミナルタイプのものをする必要はありませんでした。私はshinycreators.comでこのプログラムをすぐにリリースする予定です。 –

関連する問題