























Lua是一个由标准C语言开发的、开源的、可扩展的、轻量级的、弱类型的、解释型脚本语言。
tar -zxvf lua-5.5.0.tar.gz -C /opt/LuaLua提供了两种交互模式:命令模式和脚本文件模式。
直接再命令行中输入语句,回车就可看到运行结果。
先使用lua命令进入lua命令行模式,然后输入语句后回车开始运行。
lua语句后的分号不强制要求,有没有都行。



脚本文件的运行方式有两种:lua命令方式和可执行文件方式。
可执行文件方式就是将lua脚本文件修改为可执行文件运行。
修改脚本文件内容
在脚本文件第一行增加#!/usr/bin/lua,表示当前文件使用/usr/bin/lua 命令来运行。
修改脚本文件权限
为脚本文件赋予可执行权限 chmod 755 hello.lua
运行./hello.lua
Windows系统的Lua运行环境,最常用的是SciTE。
SciTE是一款Lua脚本测试编辑器,提供Lua编辑运行环境。除了SciTE还有LuaDist、LuaRocks等。
下载地址是:Releases · rjpcomputing/luaforwindows
SciTE有两种运行方式:命令行反射光hi和Lua脚本的编辑运行环境。
Lua的行注释为两个连续的减号。
段注释以--[[开头,以--]]结尾。
Lua有以下8种数据类型。通过type()可以查看一个数据的类型,比如type(nil) 的结果为nil

Lua的标识符由字母、数字、下划线组成,不能以数字开头。Lua大小写敏感。
Lua是弱类型语言,变量无需声明即可使用。
变量分为全局变量和局部变量。Lua中的变量默认都是全局变量,即使声明在语句块或函数里。
局部变量local相当于Java中的private,只能在声明的语句块中使用。
变量的类型可以随时改变,无需声明。
假设A=10 ,B=20,其各种运算符的结果如下:

注意:

假如A=true,B=false


Lua中函数以function开头,后跟函数名和参数列表,以end结尾。
可以没有返回值,也可以一次返回多个值。
function f(a,b)
print (a,b)
end
Lua中的函数不要求实参的个数必须与形参的个数相同。
如果实参个数小于形参个数,剩余的用nil填充。
如果实参个数大于形参个数,多余的会被系统忽略。
函数定义时不给出具体形参的个数,而是使用三个连续的点号。
函数调用时可以传递任意个数的参数,函数会全部接收。
function f(...)
local a,b,c,d=...
print(a,b,c,d) -- 输出前4个参数
print(...) -- 输出所有参数
end
当函数返回多个值,需要有多个变量来同时接收。
function f(a,b)
local sum=a+b
local mul=a*b
return sum,mul
end
m,n=f(3,5)
print (m,n) -- 结果为8,15
函数作为参数时,可以是已经定义好的普通函数,也可以是匿名函数。
Lua提供if...then 用于表示条件判断,if的判断条件可以是任意表达式。
false与nil为假,true与非nil作为真,即使是0也是真。
if的判断条件可以使用小括号,也可以不使用。
if a>0 then
print("num > 0")
else
print("num <= 0")
end
if...then...elseif...then...else...end
这里的elseif 中间没有空格。
if a>0 then
print("num > 0")
elseif a==0 then
print("num = 0")
else
print("num < 0")
end
while...do :while中的条件成立就一致循环。
repeat...until :until中的条件成立,就停止循环。
repeat
print(a)
a=a-1
until a<0
数值for:这种for循环只用于循环变量为数值型的情况,语法格式为:
for var=exp1,exp2,exp3 do
循环体
end
var为循环遍历,exp1为循环初始值,exp2为循环结束值,exp3为循环步长。
步长不写时,默认为1。
泛型for:用于遍历table中的值,要与Lua的迭代器联合使用。
break:提前终止循环。
goto:跳转到指定标记语句处开始执行。语句标记使用双冒号括起来,置于语句前面。
goto语句可以用在循环之外。
注意:Lua5.1 不支持双冒号的语句标记。
function f(a)
::flag:: print(a)
if a>1 then
print("hello")
a=a-1
goto flag
end
end
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。