Lua编程示例(七):协同程序基础逻辑(lua编程零基础教学)这样也行?

随心笔谈5个月前更新 admin
196 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了Co语言(Coperations)中的协程(coroutine)机制,重点围绕`coroutine.create`和`coroutine.resume`方法展开。文章通过多个示例展示了如何使用协程,包括: 1. **协程的基本创建与暂停**:展示了如何使用`coroutine.create`函数创建协程,并通过`coroutine.resume`将其暂停和恢复。2. **使用`coroutine.yield`暂停执行**:解释了如何在协程内部使用`coroutine.yield`方法暂停当前任务,以便进行其他操作。3. **传参与不传参的情况**:分析了不同参数传入对协程执行的影响,包括不传参、传参以及传参后处理返回值。4. **函数内部的返回值处理**:探讨了在协程内部函数返回值如何被`coroutine.resume`处理,并展示了其在不同场景下的表现。 文章通过代码示例详细说明了协程的操作流程,突出了协程的暂停与恢复机制,以及如何通过传入参数和返回值来控制协程的执行。整体内容简明扼要,重点突出协程的使用场景和关键操作。


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()

© 版权声明

相关文章