Lua每日喝粥Lua进阶教程学习笔记

本文详细介绍了Lua中的require机制,包括如何访问全局变量和函数,以及如何管理模块加载。此外,还探讨了迭代器的使用,如ipairs和pairs在不同情况下的应用。接着,讲解了字符串操作,如lower函数和find/match函数的功能。文章进一步讨论了正则表达式的使用,并展示了如何进行模式匹配。最后,提到了Lua的协程概念,包括创建、启动和暂停协程的方法,以及协程的状态管理。
摘要由CSDN通过智能技术生成

Require

require可以访问在其他文件中的全局变量或者全局函数。如果在其他文件夹下面则要加上文件夹名的路径。不需要加.lua的后缀,因为lua中会自动匹配。

 

但是无论require几次都只会访问一次。如下,只运行一次加法。

可以在package,path中添加路径

 lua中用require实现库的调用

迭代器

在lua的table中,数字下标的table可以直接for循环对数组下标进行迭代

 纯数字下标且连续的table 可以用ipairs()对table进行迭代遍历,其效果与for循环完全相同。

但是当数字下标不连续时,迭代器读到nil便会停止遍历。

 

 

 面对字符串下标的,可以用pairs()对table中所有类型的下标进行遍历。会将所有的下标全部迭代出来(注意下面代码块与上面ipars的区别

 

 

 pairs迭代器中是用next函数实现,next函数效果如下(如果table为空,next会打出nil,可以用来检查table是否为空。)

 

 字符串

 在lua中字符串中是一个字节一个字节存储,每个字节存储的是一串数字(ascll码)。可以存储任何byte值,能存0且不会丢失。

 字符串中有序号,从1开始

如下,对字符串第一个byte打出(1,表示下位1),结果为49,即0x31。右边为语法糖表示

 

也可以用byte打印出字符 

如下证明了字符串中能存取任何数字

 

 lower能把大写字母打印成小写,但打印是一个副本,即不会影响原始变量

 

 sring.find 可以找到模板字符串在变量字符串中的位置,并返回模板在字符串中的起始位置(索引)

 string.match则在字符串中返回模板

 

 正则匹配

可以用一些符号在字符串中或某一位置后搜寻特定的字符,每种字符由特定的符号表示

如下%d表示搜寻数字

 

 比如搜寻d带上后面两个数字

 

 可以用[]中选取多种可选匹配,如下

d后面可以匹配一个数字或字母

括号的使用

 

gsub可以用做替换。

 

 gmatch可以做迭代器,输出所有模板

 

协程

lua支持协程(实际上并不是多线程,而是分时复用),被赋值为协程的变量为thread类型,创建一个协程如下。

 不会直接执行,需要用resume来启用,resume可以开始一个协程,也能继续一个协程,yield则可以暂停一个协程,并返回一个值

 lua协程有状态,还没开始或者用yield暂停状态为“suspended”,正在运行则为“running”,调用其他协程暂时挂起为“normal”,结束则为“dead”,一个协程dead则不能再调用。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 本套课程分为基础与中级两部分,分别就lua语言的各方面知识点进行探讨,学习完本套课程,对于后续Xlua(Tolua等框架)技术的学习提供强大的语言技术保证。       本套lua课程采用入门与商业级两种开发IDE进行教学:入门级的SciTE内置IDE与商业级的IDEA lua插件。本套课程学习完毕,对于除了传统手游外,在VR、AR、商业级大型应用程序、嵌入式设备开发等领域都有较强的指导作用。           《lua中级篇》分为:“函数的进阶”、“字符串进阶”、“Table进阶”、“元表”、“OOP面向对象”、“协同程序”、“IO操作”、“调试与运行”等八个大的章节,详细深入讲解lua开发的方方面面。        内容包含lua可变参数、闭包、模块、函数尾调用、字符串模式匹配、字符串不变性原理、矩阵、链表、元表详解与应用、协同的生命周期与生产消费者问题、lua文件各种读写操作、lua执行外部代码与错误异常处理垃圾收集机制等。       最后,lua中级篇的学习,对于广大学员开发商业级lua热更新技术,具有不可替代的重要作用! 热更新系列(技术含量:中高级):B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值