快速定位
for 循环的使用
table + insert +remove 表的遍历、插入、删除的使用
Lua的数据类型
nil、boolean、number、string、function、table、userdata、thread
定义变量
local a = "hello world"
local b = 'hello world'
local c = 1
local d = 1.0
local e,f = 1
local g,h = 1,2
print("a=",a) --hello world
print("b=",b) --hello world
print("c=",c) --1
print("d=",d) --1.0
print("e=",e) --1
print("f=",f) --nuk
print("g=",g) --1
print("h=",h) --2
Switch 判断
local Args = 2
local switchName = {
[1] = function ()
print("1")
end,
[2] = function ()
print("2")
end,
[3] = function ()
print("3")
end -- 最后一个逗号要省略
}
-- 使用switch
switchName[Args]() -- 输出2
if 逻辑判断
if XXXXX then
end
如果 nil 进行比较 需使用 "nil"
if a == "nil" then
end
local abc = 2
if abc == 1 then
print("A")
elseif abc == 2 then
print("B")
end
-- 输出 B
print 控制台输出
-- 输出a变量的值
print(a)
-- 输出a变量的类型
print(type(a)) -- 结果有string、num、nil、table
for 循环
-- 定义数组araay
local araay = {"zhangsan","lisi","wangwu"}
-- 去除数组第2个元素 lisi
print(araay[2])
-- Lua 里表的默认初始索引一般以 1 开始
for k, v in pairs(araay) do
print("Key:", k)
print("Value:", v)
if k == 2 then
break
end
end
-- 输出结果
lisi
Key: 1
Value: zhangsan
Key: 2
Value: lisi
for循环10次
for i=1,10 do
local oneItem = math.random(0,2)
print(oneItem)
end
function 函数
-- 定义一个函数
function APlusB(a,b)
return a + b;
end
-- 调用函数
local c = APlusB(1,2);
print(c)
-- 输出 3
可变参数 ...
local function moreArgs(...)
for k,v in pairs{...} do -- 注意方法用小括号,参数应花括号
print(k.."="..v)
end
end
moreArgs(1,2,"你好世界")
print("---------")
moreArgs(4,5,6,"我很好")
Lua常用方法
-- 格式化字符串
print( string.format("the value is:%d",4) )
-- 转化为 string
print( string.format("你好世界".." Hei") )
-- 输出
the value is:4
你好世界 Hei
数组
想了解,请去https://www.lua.org/cgi-bin/demo 在线测试一下
array = {"Lua", "Tutorial"}
-- 注意 i应该从1开始 才能取到有效元素,否则i=0 取到的元素是nil
for i= 0, 2 do
print(array[i])
end
print("----")
for index,value in ipairs(array) do
print(index..":"..value)
end
数据类型转换
tonumnber("1")
tostring(1)
表 table
-- 定义一个表 tb 里面有4个元素
local tb = {
[1] = "A";
[2] = "B";
[3] = "C";
[4] = "D";
}
print("mytable 索引为 1 的元素是 ", tb[1])
print("----遍历Table-----")
for k,v in ipairs(tb) do
print(k,v)
end
print("----删除索引1号元素,然后遍历Table-----")
-- 删除tb表 索引为1的值
table.remove(tb ,1)
for k,v in ipairs(tb) do
print(k,v)
end
print("----在索引1的位置上,插入元素A,然后遍历Table-----")
-- 插入到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
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
评论(0)