Lua - 协同程序(二)返回值
原创
©著作权归作者所有:来自51CTO博客作者A武汉创品科的原创作品,请联系作者获取转载授权,否则将追究法律责任
local coco = coroutine.create(
function(i)
print(i+1)
--暂停携程
coroutine.yield()
return i + 10
end
)
--调用携程
--第一个传递的为 是否开启协程 第二个参数传递的为 i 的值
res1,res2 = coroutine.resume(coco,3)
print(res1,res2)
--继续运行 --
res3,res4= coroutine.resume(coco,5)
print(res3,res4)
print("--------------------------------------------------------------------------------------------")
local luaCo = coroutine.create(
function(i)
print(i+1)
--暂停携程
coroutine.yield(i+5)
return i + 10
end
)
--调用携程
--第一个传递的为 是否开启协程 第二个参数传递的为 形参
res5,res6 = coroutine.resume(luaCo,3)
print(res5,res6)
--继续运行 -- 继续运行的时候直接走yield 之后的逻辑,传递进来的 i 值即为 8,也就是说为 i 返回出来的值
res7,res8= coroutine.resume(luaCo)
print(res7,res8)