加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua中的coroutine

发布时间:2020-12-14 22:18:21 所属栏目:大数据 来源:网络整理
导读:function foo (a) print("foo",a) return 2*a --return coroutine.yield(2*a) end co = coroutine.create(function (a,b) print("co-body",a,b) local r = foo(a+1) r = coroutine.yield() print("after yeild!") print("co-body",r) local r,s = coroutine.
     function foo (a)
       print("foo",a)
       return 2*a
       --return coroutine.yield(2*a)
     end


     co = coroutine.create(function (a,b)
           print("co-body",a,b)
           local r = foo(a+1)
	   r = coroutine.yield()
	   print("after yeild!")
           print("co-body",r)
           local r,s = coroutine.yield(a+b,a-b)
           print("co-body",r,s)
           return b,"end"
     end)


     print("main",coroutine.resume(co,1,10))
     print("main","z"))
     print("main","x","y"))
     print("main","y"))

结果

co-body 1 10

foo 2
main true
after yeild!
co-body z
main true 11 -9
co-body x y
main true 10 end

main false cannot resume dead coroutine


感觉上形如r = coroutine.yield()这种的r是通过下次传的参数,而不是实际的返回值。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读