Я работаю над игрой со стеком в Lua. Код основной игры использует сопрограммы в основной игре l oop для ожидания таких событий, как ввод ввода или завершение таймера. Я подумываю переключить его на Python, чтобы сделать его более переносимым, но я не могу понять, как правильно использовать async
и await
, чтобы быть эквивалентным сопрограммам Lua.
Следующий код представляет собой простой пример сопрограммы в Lua. Как бы я go написал о том же в Python, ведя себя так же?
function myCoroutine(arg1)
print(arg1)
local newValue = coroutine.yield(arg1 + 2)
print(newValue)
local lastValue = coroutine.yield(arg1 * newValue^2)
print(lastValue)
end
local co = coroutine.create(myCoroutine)
local success, yield1 = coroutine.resume(co, 10)
local success, yield2 = coroutine.resume(co, yield1 * 2)
coroutine.resume(co, yield2 / 3)
Ожидаемый результат:
10
24
1920