Lua编程示例(七):协同程序基础逻辑
程序员文章站
2022-06-17 09:30:12
co=coroutine.create(function()
print("hi")
end)
print(coroutine.status(co))
c...
co=coroutine.create(function() print("hi") end) print(coroutine.status(co)) coroutine.resume(co) print(coroutine.status(co)) print() co=coroutine.create(function() for i=1,2 do print("co",i) coroutine.yield() end end) coroutine.resume(co) print(coroutine.status(co)) coroutine.resume(co) print(coroutine.status(co)) coroutine.resume(co) --没有输出 print(coroutine.status(co)) print() co=coroutine.create(function(a,b,c) print("co",a,b,c) end) coroutine.resume(co,1,2,3) co=coroutine.create(function(a,b) print("i'm before yield") --第一次运行执行 coroutine.yield(a+b,a-b,"needless args") --在这停住,返回yield的参数 print("mgs") end) print(coroutine.resume(co,20,10)) --参数传给yield,处理后再返回 print("i print first") coroutine.resume(co) co=coroutine.create(function() return "i'll return" end) print(coroutine.resume(co)) --主函数的返回值回传给resume print()
输出结果:
suspended hi dead co 1 suspended co 2 suspended dead co 1 2 3 i'm before yield true 30 10 needless args i print first mgs true i'll return