1. ホーム
  2. lua

[解決済み] Luaスクリプトを終了させるには?

2022-02-15 19:17:45

質問

Luaスクリプトを終了させるにはどうしたらいいですか?今、exit()で問題が発生していますが、理由がわかりません。(これは、含まれているAPIを使用しているので、どちらかというとMinecraft ComputerCraftの質問です。) 以下は私のコードです。

while true do

    if turtle.detect() then

        if turtle.getItemCount(16) == 64 then

            exit() --here is where I get problems

        end

        turtle.dig() --digs block in front of it

    end

end

解決方法は?

prapinさんの回答にあるように、Luaでは関数 os.exit([code]) は、ホストプログラムの実行を終了させます。しかし、これはあなたが探しているものとは違うかもしれません。 os.exit は、あなたのスクリプトだけでなく、実行中の親Luaインスタンスも終了させます。

マインクラフト・コンピュータクラフト を呼び出す。 error() を使用することもできますが、エラーが発生した後に純粋にスクリプトを終了させる以外の目的で使用することは、おそらく良い方法とは言えません。

Luaでは、すべてのスクリプトファイルは独自のスコープを持つ関数とみなされるため、スクリプトの終了には return キーワードで、関数から戻るのと同じように

こんな感じで。

while true do

    if turtle.detect() then

        if turtle.getItemCount(16) == 64 then

            return -- exit from the script and return to the caller

        end

        turtle.dig() --digs block in front of it

    end

end