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
新聞熱點
疑難解答