nil–该类型只有nil一个值,表示一个无效值,在条件表达式中相当于false
boolean–包含两个值:false,true
number–表示双精度类型的实浮点数
string–字符串
function–由C或者Lua编写的函数
userdata–表示任意存储在变量中的C数据结构
thread–表示执行的独立路线,用于执行协同程序
table–lua表其实是一个关联数组,数组的索引可以是数字,字符串,或者表示类型,在Lua中,table的创建通过构造表达式来完成,最简单的构造表达式是{},用来创建一个空表
在Lua中定义变量不需要指定具体类型,赋值的同时便指定类型
如:
a=1
str=‘str’(lua中定义字符串型可以允许使用""或者’’)
b=false
以上,分别定义了三个变量,分别为number型,string型,boolean型
函数,即用来处理一些特定的工作的代码集合
Lua中定义函数的格式为:
Lua中定义函数的格式为:
optional_function_scope function function_name(argument1,argument2,argument3)
function_body
return result_params_comma_separated
end
optional_function_scope:用来定义该函数是否全局,未设置则默认全局函数,如果要设置为局部函数,则需要填写关键字local
function_name:函数名称
argument1,argument2:函数的参数,多个参数以逗号隔开,函数可以不带参数
function_body:函数体,函数中需要执行的代码语句块
result_params_comma_separated:函数返回值,lua语句函数可以返回多个值,每个值都以逗号隔开
在Lua中,函数可以接受可变数目的参数,用三个…表示
function average(…)
local arg={…}
local result=0
for i,v in ipairs(arg) do
result=result+v
end
return result
end
在Lua中数组可以用表结构来实现
例如:
定义一个number型的数组
int_array={1,2,3,4,5}
定义一个string型的数组
string_array={‘a’,‘b’,‘c’}
格式:以{}包括,以,作为表中各元素的分割符,元素格式不唯一,一个数组中可以存在多种类型的元素
在lua中,遍历数组可以使用ipairs或者pairs完成
其中,ipairs只会遍历索引从1开始的键值对,碰见一个位置为空则停止遍历;
而pairs则会遍历表中的所有元素
array={}
array[0]=1
array[1]=1
array[2]=1
for k,v in ipairs(array) do
print(k,v)
end
//输出:
1 1
2 1
for k,v in pairs(array) do
print(k,v)
end
//输出:
1 1
2 1
0 1