快速定位

switch

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

print(a)
print(b)
print(c)
print(d)

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 循环

        -- 遍历数组table1
	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()

数组

想了解,请去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("---------")
	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

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源