Lua 数据类型
-
nil(空)
-
boolean(布尔)
-
number(数字)
-
string(字符串)
-
table(表)
-
function(函数)
-
thread(线程)
-
userdata(自定义类型)
变量
包含全局变量和局部变量
-- 全局变量
num = 10; print("num="..num)
-- 局部变量
local name = false;
-- 使用type获得数据类型
local myType = type(name) print("type="..myType) if-else -- if-else local age = 14; if age < 18 print("成年人"); elseif age >= 18 then print("男"); else print("小毛孩子"); end
while循环
-- while循环
local i = 0 while i <= 100 do print("i = "..i); i = i + 1; end
for循环
for 变量初始化,结束值,递增值
-- for循环
for i = 0 , 100, 1 do print("i = "..i); end
函数
基本函数 -- 定义函数 function sum(n1,n2) return n1 + n2; end local result = sum(22,33); print(result);
Lua的函数可以返回多个结果
-- 返回多个结果 function getNumbers() return 11,22,33; end local n1,n2,n3 = getNumbers(); print(n1,n2,n3);
闭包机制,函数也可以看做值
function func() local num = 0; -- 匿名函数 return function() num = num + 2; return num; end end local foo = func(); print(foo()) print(foo()) print(foo())
数组
Lua的数组可以包含多种数据类型,甚至函数 下标是从1开始的
-- 数组
arr = {"haha", 100, "hehe",function() print("hoho") return 99 end} print(arr[1],arr[2],arr[3],arr4)
使用for-in可以遍历下标和值
for k,v in pairs(arr) do print(k,v) end
面向对象
Lua支持面向对象的语法
-- 定义对象属性
local person = {id = 1,name = "张三",age = 20}; print(person.id,person.name,person.age);
-- 定义对象方法
function person.sayHi() print("我是"..person.name.."年龄"..person.age); end person.sayHi();