Lua的数据类型
代码语言:javascript复制nil、boolean、number、string、function、table、userdata、thread
定义变量
代码语言:javascript复制local a = "hello wordld"
local b = 1
Lua逻辑判断
代码语言:javascript复制if XXXXX then
end
如果 nil 进行比较 需使用 "nil"
if a == "nil" then
end
代码语言:javascript复制if XXXXX then
elseif then
end
控制台输出
代码语言:javascript复制// 输出a变量的值
print(a)
// 输出a变量的类型
print(type(a))
Lua循环
代码语言:javascript复制 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
Lua函数 & 使用
代码语言:javascript复制function APlusB(a,b)
return a b;
end
local c = APlusB(1,2);
print(c)
Lua可变参数 …
代码语言:javascript复制function(...)
for k,v in pairs(...) do
print(v)
end
end
Lua常用方法
代码语言:javascript复制//格式化字符串
string.format("the value is:%d",4)
//转化为 string
string.format()
Lua数组
代码语言:javascript复制array = {"Lua", "Tutorial"}
for i= 0, 2 do
print(array[i])
end
数据类型转换
代码语言:javascript复制tonumnber("1")
tostring(1)
表 table
代码语言:javascript复制 -- 定义一个表 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
-- 最终表的数据还是最初定义的样子
可能需要的表 字符串互转
代码语言:javascript复制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
特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉! 以上文章,均是我实际操作,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,请勿直接盗用!