@TOC
第3天内容复习
第4天内容
模块化编程
module 将文件声明为模块,写法 module(…, package.seeall)
require 引入一个文件包
1 | module(..., package.seeall) --使得文件中的函数在何处都可调用 |
跨文件调用 Lua5.1
新建一个文件叫tools.lua,把这个函数放进去
1 | --使这个代码在哪个文件里都能被调用 |
封装的这个函数就能在其他文件里调用
1 | --引用tools.lua文件,并加载 |
跨文件调用 Lua5.3
新建一个文件叫tools.lua,把这个函数放进去
1 |
|
封装的这个函数就能在其他文件里调用
1 | --引用tools.lua文件,并加载 |
※string库
字符串长度
string.len
接收一个字符串,返回它的长度。
1 | a = "hello lua" |
字符串大小写转换
string.upper(s)
接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串。string.lower(s)
接收一个字符串 s,返回一个把所有大写字母变成小写字母的字符串。
1 | a = "hello lua" |
字符串索引
string.sub(s, i [, j])
返回字符串 s 中,从索引 i 到索引 j 之间的子字符串。
1 | d = "123456789" |
字符串编码
string.char (...)
接收 0 个或更多的整数(整数范围:0~255),返回这些整数所对应的 ASCII 码字符组成的字符串。
1 | -- 抄大佬的 |
string.byte
返回字符 s[i]、s[i + 1]、s[i + 2]、······、s[j] 所对应的 ASCII 码。
1 | a = "123" |
string.format(formatstring, ...)
按照格式化参数formatstring,返回后面…内容的格式化版本。
1 | print(string.format("%.4f", 3.1415926)) -- 保留4位小数 |
luat框架
Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。
线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时候才会被挂起。协同程序有点类似同步的多线程,在等待同一个线程锁的几个线程有点类似协同。
协同程序更详细介绍