Lua总结

一、安装
1、 Lua 是用纯粹的 ANSI C 实现的一个开源软件,是一门强大、快速、轻量的嵌入式脚本语言。
2、 获取Lua源代码
http://www.lua.org/
3、 编译Lua源代码
(1)在lua-5.3.0 目录下执行make可以查看支持的平台,编译源代码执行”make 平台名”即可。编译好以后在src目录下可以看到lua和luac两个可执行程序。(定制Lua 特性 — 编辑 src/luaconf.h)
备注:如果有编译错误: readline/readline.h: No such file or directory,说明缺少libreadline-dev依赖包,安装此包即可:
centos: yum install readline-devel
debian: apt-get install libreadline-dev.
(2)Luac是脚本编译器:将脚本编译成二进制文件。
(3)lua是解释器:解释脚本源文件或luac编译好的二进制文件。
4、 安装lua
(1)主要做的事就是把src下的.o打包成.a,把可执行程序拷贝出来等。
(2)在lua-5.3.0 目录下执行make local,就可以安装在当前目录下的install目录下。
(3)进入install目录可以看到bin、include、lib等目录,本节课主要内容是如何使用bin里的可执行程序和编写脚本的语法。
(4)include和lib的使用、lua在IPC代码中的使用下节课讲。
5、 进入bin目录进行编程
(1)、交互式编程:执行./lua启动lua程序,在命令行输入脚本回车即可执行该脚本。
(2)、脚本式编程:将脚本写入xxx.lua文件里,然后执行
./lua xxx.lua或者在xxx.lua第一行写上 #!/mnt/hgfs/work/lua-5.3.3/install/bin/lua(即指定lua路径)
,然后./xxx.lua即可执行脚本。
二、语法
1、语句之间的分隔符:空格、分号、换行

2、标识符
1)标识符不能以数字开头
2)避免使用一个下划线并跟着一个或多个大写字母的标识符。
3)标识符不能为保留字
保留字:
and break do else elseif
end false for function if
in local nil not or
repeat return then true until while
4)有大小写之分

3、注释
行注释:–
块注释1:
–[[(技巧:启用代码只需要写成—[[即可)
print(10)
–]]
块注释2:(中括号之间加任意个等号)
–[=[
–[=[

4、变量
1)所有的标识符是一个值为nil的全局变量

5、类型:8种
1)
nil

boolean:lua只将false和nil视为“假”,其他都为“真”

number:表示双精度浮点数(整数也是双精度浮点数表示的)。

string:
1))单引号或双引号界定,有些字符需要转义
2))中括号
[[
字符不需要转义
]]
3))中括号之间加任意个等号
[====[
字符不需要转义
]====]
4))lua会自动将字符串转换为数字
主动转换函数
tonumber()
tostring()
5))..:字符串连接操作符print(10 .. 20) –>1020
6))#获取字符串的长度

userdata

function
函数可以存储在变量中,可以通过参数传递给其他函数,还可以作为其他函数的返回值。

thread

table:键值对k v
1))table没有固定大小,可以动态添加任意数量的元素到一个table中。
2))lua是用table来表示模块、包和对象的。
3))构造一个table : {}
a = {} –创建一个table,a引用它(注意是引用)
4))lua是使用table来管理全局变量的
5))table的索引
a = {}
a[10] = 2 –k = 10 v = 2
a[“x”] = 3 或a.x = 3 –k = “x” v = 3
6))#获取一个数组或线性表的最后一个索引值
print(a[#a])
a[#a] = nil
a[#a+1] = v
7))读取文件的前10行
a = {}
for i=1,10 do
a[#a+1] = io.read()
end

2)函数type可根据一个值返回其类型名称

三、lua解释器
1、一个程序块(chunk)
交互模式下一行的内容作为一个完整的程序块,如果一行不足以构成一个完整的程序块则等待输入更多内容。
脚本模式下一个文件作为一个完整的程序块。

2、lua解释器参数:lua [选项参数] [脚本[参数]]
1)lua 无任何参数进入交互模式
2)lua -e “代码”
直接运行代码
3)lua -i 脚本文件
执行完脚本文件后进入交互模式
4)lua -l a
加载库a
5)lua -i -e “_PROMPT=’ lua> ‘”
修改交互模式的命令提示符为lua>
6)lua -i -e “LUA_INIT=’@script’”
预先执行script脚本

3、交互模式命令(lua>为命令提示符)
lua> = 表达式
打印表达式的值

4、脚本模式的命令行参数
lua -e “a=1” script a b
则arg[-3] = “lua”
arg[-2] = “-e”
arg[-1] = “a=1”
arg[0] = “script”
arg[1] = “a”
arg[2] = “b”

猜你喜欢

转载自blog.csdn.net/qq_39660930/article/details/78215220