私はLuaテーブルを持っていますt
。これを繰り返します。
for k, v in pairs(t) do
b = false
my_func(v)
end
b
グローバル変数がに変更されるまで反復を一時停止する必要がありますtrue
Luaは可能ですか?
私はLuaテーブルを持っていますt
。これを繰り返します。
for k, v in pairs(t) do
b = false
my_func(v)
end
b
グローバル変数がに変更されるまで反復を一時停止する必要がありますtrue
Luaは可能ですか?
コルーチンを使用していない限り、コードで値を変更せずにLua変数の値を変更するという概念はありません。したがって、起こり得ないことが起こるまで一時停止します。Luaは本質的にシングルスレッドです。
前に述べたように、コルーチンを使用してこれを行うことができますが、それに応じてコードを変更する必要があります。
function CoIterateTable(t)
for k, v in pairs(t) do
b = false
my_func(v)
while(b == false) do coroutine.yield() end
end
end
local co = coroutine.create(CoIterateTable)
assert(co.resume(t))
--Coroutine has exited. Possibly through a yield, possibly returned.
while(co.running()) do
--your processing between iterations.
assert(co.resume(t))
end
反復間で参照されるテーブルを変更してt
も、有用なことは何も行われないことに注意してください。