一,搭建环境:
工具:UItraEdit
需要的两个文件:
添加到Path系统变量中:
就是有lua.exe的那个目录
出现
表示环境变量添加成功
在UItraEdit中添加配置
然后第一个HelloWorld,运行
二,语法基础
(1) Lua的保留字,不能当作标识符。
and; break; do; else; elseif; end;false; for; function; if; in; local; nil; not; or; repeat; return; then; true;until; while;
(2) Lua是大小写敏感的。
1,注释
单行注释 --
多行注释 --[[ ]]--
-- 单行注释
--[[多行
注释
--]]
--[=[
包含--[[
--]]的注释
--]=]
2,基础类型
内容决定类型,
nil, 空
boolean, 除了false和nil,其他均被判断为false
number, 常用函数 math.round,math.floor
string,
userdata,
function,
thread,
table
取字符串操作
#
连接符
1>..表示字符串连接,number类型都会转换成字符串,注意第一个字符串后必须要接一个空格,例如: "10" .. 1
2>+把两边操作数转换成number,然后进行加法运算。
text = "10" .. 1
print(text)
text = 10 .. "1"
print(text)
text = 10 .. 1
print(text)
text = "Hello" .. "World"
print(text)
text = "10" + "1"
print(text)
text = 10 + "1"
print(text)
text = "10" + 1
print(text)
text = 10 + 1
print(text)
控制台输出:
101
101
101
101
11
11
11
11
3,表达式
Lua中的表达式包括:数字常量、字符串常量、变量、一元和二元运算符、函数调用。
(1) 算术运算符
二元运算符:+ - * /^ 加减乘除幂
一元运算符:- 负值
这些运算符的操作数都是实数。
(2) 关系运算符
< > <= >= == ~=
(3) 逻辑运算符
and or not
注意:
逻辑运算符认为false和nil是假(false),其他为真(0也是真)。
a and b
如果a为false,则返回a,否则返回b
a or b
如果a为true,则返回a,否则返回b
在Lua中:
(A and B) or C 相当于java中的 a?b:c
not的结果一直返回false或者true。
(4) 连接运算符
.. 两个点
4,方法
-- function
text = function(n)
print("Function")
--text() -- 错误
end
function text(n)
print("Function")
--text(n) -- 正确
return text(n) -- 尾消除lua:尾调用是一种类似在函数结尾的goto调用,当函数最后一个动作是调用另外一个函数时,称这种调用为尾调用。
end
n 控制结构语句
(1) if有3种形式
(2) while语句
(3) repeat-until语句
(4) for有2种形式
A: 数值for循环
for var = exp1, exp2, exp3 do
Loop-part
end
for将用exp3作为step从exp1(初始值)到exp2(终止值),执行loop-part。其中,exp3可以忽略,默认step = 1。
注意:
(1) for中的三个表达式只会被计算一次,并且是在循环开始前。
(2) 控制变量var是局部变量自动被声明,并且只在循环内有效。
(3) 如果需要保留控制变量的值,需要在循环中将其保存。
(4) 循环过程中不要改变控制变量的值,那样做的结果是不可预知的。如果要退出循环,使用break语句。
B:范型for循环
for i, val in ipairs(a) do print(v) end
范型for遍历迭代子函数返回的每一个值(val)