LUA 笔记之 协同程序之间resume()与yield()传递数据的理解

网上看到的,总有各种谬误,改了一下,写的按照自己的理解来的
协同程序之间交换数据(通过yield与resume方法完成)
coroutine.yield([var1,var2,...]):当运行中的协同程序遇到coroutine.yield()方法后会挂起。传入的变长参数为上一个coroutine.resume()函数的返回值。 返回值为下一个coroutine.resume()方法传入的参数。
coroutine.resume(co,[var1,var2,...]):可以使指定的协同程序(co)恢复运行。参数1 co为需要运行的协同程序。 参数2 变长参数,为上一个coroutine.yield()方法的返回值 返回值:运行过程中没有错误会返回true,之后是下一个coroutine.yield()方法传入的参数。如果运行过程中出现错误,就会返回false,加上错误信息。


PS. resume()和yield() 方法成对出现,且resume先执行,第一个resume(co, params) 方法的参数2params是协同程序的参数,后面的每一个resume(co, params) 的参数2params都是上一个coroutine.yield() 方法的返回值

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容