快速定位
Lua的数据类型
nil、boolean、number、string、function、table、userdata、thread
定义变量
local a = "hello wordld"
local b = 1
Switch 判断
switch (变量): caseof
{
[1] = function ()
-- Do One Something
end,
[2] = function ()
-- Do Two Something
end,
}
if 逻辑判断
if XXXXX then
end
如果 nil 进行比较 需使用 "nil"
if a == "nil" then
end
if XXXXX then
elseif then
end
print 控制台输出
// 输出a变量的值
print(a)
// 输出a变量的类型
print(type(a)) 结果有string、num、nil、table
for 循环
local table1 = {"zhangsan","lisi","wangwu"}
-- Lua 里表的默认初始索引一般以 1 开始
for k, v in pairs(table1) do
print("Key:", v)
if k == 2 then
break
end
end
结果输出:
Key: zhangsan
Key: lisi
for循环10次
for i=1,10 do
oneItem = math.random(0,2)
print(oneItem)
end
function 函数
-- 定义一个函数
function APlusB(a,b)
return a + b;
end
--调用函数
local c = APlusB(1,2);
print(c)
可变参数 …
function(...)
for k,v in pairs(...) do
print(v)
end
end
Lua常用方法
//格式化字符串
string.format("the value is:%d",4)
//转化为 string
string.format()
数组
array = {"Lua", "Tutorial"}
for i= 0, 2 do
print(array[i])
end
数据类型转换
tonumnber("1")
tostring(1)
表 table
-- 定义一个表 tb 里面有4个元素
local tb = {
[1] = "A";
[2] = "B";
[3] = "C";
[4] = "D";
}
print("mytable 索引为 1 的元素是 ", tb[1])
print("---------")
for k,v in ipairs(tb) do
print(k,v)
end
print("---------")
-- 删除tb表 索引为1的值
table.remove(tb ,1)
for k,v in ipairs(tb) do
print(k,v)
end
print("---------")
-- 插入到tb表 索引为1 值为"A"
table.insert(tb ,1 ,"A")
for k,v in ipairs(tb) do
print(k,v)
end
-- 最终表的数据还是最初定义的样子
可能需要的表 字符串互转
function ToStringEx(value)
if type(value)=='table' then
return TableToStr(value)
elseif type(value)=='string' then
return "\'"..value.."\'"
else
return tostring(value)
end
end
function StrToTable(str)
if str == nil or type(str) ~= "string" then
return
end
return loadstring("return " .. str)()
end
function TableToStr(t)
if t == nil then return "" end
local retstr= "{"
local i = 1
for key,value in pairs(t) do
local signal = ","
if i==1 then
signal = ""
end
if key == i then
retstr = retstr..signal..ToStringEx(value)
else
if type(key)=='number' or type(key) == 'string' then
retstr = retstr..signal..'['..ToStringEx(key).."]="..ToStringEx(value)
else
if type(key)=='userdata' then
retstr = retstr..signal.."*s"..TableToStr(getmetatable(key)).."*e".."="..ToStringEx(value)
else
retstr = retstr..signal..key.."="..ToStringEx(value)
end
end
end
i = i+1
end
retstr = retstr.."}"
return retstr
end
特殊说明:
以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!