LUA 脚本简单教程
注释
--单行注释
–[[
多行注释
多行注释
–]]
变量
- nil:无效值,比较时需要加上双引号”“,对全局变量和table复制nil,等于删除它们
- boolean:布尔值
- number:双精度类型的实浮点数
- string:字符串,单引号’‘或双引号”“或[[]]
- function:函数
- userdata:任意存储在变量中的c数据结构
- thread:独立线路
- table:关联数组,索引可以是数字或字符串,{}创建一个空表,数值下标1开始
关键字
and break do else elseif end false for
function if in local nil not or repeat
return then true until while
作用域
默认情况下,变量都是全局的,除非显示local声明为局部变量 尽量使用局部变量,因为1.避免命名冲突2.访问局部变量比全局变量快
赋值
a = "hello" … "world"
a,b = 10,20
– 这里c的值为nil
a,b,c = 1,2
运算符
- 与或非:and or not
- …:连接两个字符串
- #:一元运算符,返回字符串或表的长度
控制流程
- if语句
local a = 10
if a > 10
then
print("1")
else
print("2")
end
- 循环语句
– while循环
while(true)
do
print("xxx")
end
– for循环
a = {"one","two","three"}
for i,v in ipairs(a) do
print(i,v)
end
– 另一种形式
function f(x)
print("function")
return x*2
end
for i=1,f(5) do print(i)
end
– 打印1 3 5
for i=1,5,2 dp print(i)
end
– repeat循环
a = 1
repeat
print(a)
a = a+1
util(a > 15)
函数
function maximum(a)
local mi = 1
local m = a[mi]
for i,val in ipairs(a) do
if val > m then
mi = i
m = val
end
end
return m,mi
end
– 可变参数
function fwrite(fmt, …) —> 固定的参数fmt
return io.write(string.format(fmt, …))
end
– 统计给定可变参数个数
function foo(…)
for i = 1, select('#', …) do –>获取参数总数
local arg = select(i, …); –>读取参数
print("arg", arg);
end
end
表
- Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。
- Lua table 是不固定大小的,你可以根据自己需要进行扩容。