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() endend)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)) --主函数的返回值回传给resumeprint()
输出结果:
suspendedhideadco 1suspendedco 2suspendeddeadco 1 2 3I'm before yieldtrue 30 10 needless argsI print firstMgstrue I'll return
新闻热点
疑难解答