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() 方法的返回值

你可能感兴趣的:(LUA 笔记之 协同程序之间resume()与yield()传递数据的理解)