当前位置: 首页 > news >正文

密云建站推广深圳设计师品牌

密云建站推广,深圳设计师品牌,科研平台网站建设计划,办公室装修流程Lua 学习笔记之三 高阶话题迭代实例代码有关迭代的描述 协作线程实例代码有关协作线程的描述 高阶话题 迭代 实例代码 --迭代 local function enum(array)local index 1return function()local ret array[index]index index 1return retend endlocal function foreach(a…

Lua 学习笔记之三

  • 高阶话题
    • 迭代
      • 实例代码
      • 有关迭代的描述
    • 协作线程
      • 实例代码
      • 有关协作线程的描述

高阶话题

迭代

实例代码

--迭代
local function enum(array)local index = 1return function()local ret = array[index]index = index + 1return retend
endlocal function foreach(array,action)for element in enum(array)doaction(element)end
endforeach({1,2,3},print)

输出结果

1
2
3

有关迭代的描述

  • 定义
    迭代是for语句的一种特殊形式,可以通过for语句驱动迭代函数对一个给定集合进行遍历。正式、完备的语法说明较复杂,请参考Lua手册。

  • 实现
    如前面代码所示:enum函数返回一个匿名的迭代函数,for语句每次调用该迭代函数都得到一个值(通过element变量引用),若该值为nil,则for循环结束。

协作线程

实例代码

--线程
local function producer()return coroutine.create(function(salt)local t = {1,2,3}for i = 1,#t dosalt = coroutine.yield(t[i] + salt)endend)
endfunction consumer(prod)local salt = 10while true dolocal running ,product = coroutine.resume(prod, salt)salt = salt*saltif running thenprint(product or "END!")elsebreakendend
endconsumer(producer())

输出结果

11
102
10003
END!

有关协作线程的描述

  • 创建协作线程
    通过coroutine.create可以创建一个协作线程,该函数接收一个函数类型的参数作为线程的执行体,返回一个线程对象。

  • 启动线程
    通过coroutine.resume可以启动一个线程或者继续一个挂起的线程。该函数接收一个线程对象以及其他需要传递给该线程的参数。线程可以通过线程函数的参数或者coroutine.yield调用的返回值来获取这些参数。当线程初次执行时,resume传递的参数通过线程函数的参数传递给线程,线程从线程函数开始执行;当线程由挂起转为执行时,resume传递的参数以yield调用返回值的形式传递给线程,线程从yield调用后继续执行

  • 线程放弃调度
    线程调用coroutine.yield暂停自己的执行,并把执行权返回给启动/继续它的线程;线程还可利用yield返回一些值给后者,这些值以resume调用的返回值的形式返回。

参考文献《C/C++程序员的Lua快速入门》

http://www.yayakq.cn/news/65163/

相关文章:

  • 建设旅游信息网站的好处网站开发管理学什么
  • 旅游网站信息门户建设方案好的手机网站建设公司
  • 珠海网站建设开发扁平 网站 模板
  • 国外做贸易网站外贸网站做啥
  • wordpress门户网站模板下载北海 网站建设
  • 贵州省住房与城乡建设部网站江津网站建设方案
  • 网站背景音乐搭建网站服务器多少钱
  • 新手快速建设网站站长之家查询网站
  • 网站的后期运营及维护费用asp.net企业网站管理系统
  • wordpress自建模板厦门seo关键词排名
  • 哪些分类网站企业网站 模版
  • 马云做黄页网站时候网络舆情监测与研判
  • 东阳市建设局网站wordpress主题tiger
  • 浙江省水利建设行业协会网站html5网站源码下载
  • 福州建设工程协会网站查询设计上海展会2021门票
  • dedecms英文外贸网站企业模板泰安网络推广联系昔年下拉
  • 通州网站建设公司公司宣传册怎么制作
  • 网页制作与网站建设实战大全 豆瓣保定专门做网站
  • 网站域名根目录wordpress作品主题
  • 免费制作二级网站网站建设公司能力要求
  • 优质的网站建设案例企业vi品牌设计公司
  • 快手等视频网站做推广h5技术的网站
  • 全网营销网站建设新农村建设举报网站
  • 上海模板建站源码中国住房和城乡建设部建造师网站
  • 网站服务公司人工成本进什么费用成都微信微网站建设
  • 滁州建设管理网站wordpress在服务器上安装插件
  • 网站建设中一般要多久电商网站设计公司排行榜
  • 怎样做网站王野天津音乐广播
  • 芜湖哪家公司做网站不错建设了网站怎么管理
  • 沈阳营商环境建设局网站wordpress哪个php版本好