Lua - 17

    xiaoxiao2021-12-14  17

    这里简单汇总一下Lua 中的一些构造方法:

    一、最简单的当然是空表

    t = {}

    二、简单一点的数字表字符表

    n = {1, 2, 3, 4, 5} s = {"a", "b", "c", "d", "e"} 分别遍历它们:

    n = {1, 2, 3, 4, 5} for k in pairs(n) do print(k) end print("indexs & values") for i,v in ipairs(n) do print(i) print(v) end print("---------------") s = {"a", "b", "c", "d", "e"} for k in pairs(s) do print(k) end print("indexs & values") for i,v in ipairs(s) do print(i) print(v) end 输出结果可以知道,lua中的表,自动赋予了相应索引,可以按这样遍历出来

    三、还可以这样创建直面的数组

    t = {[1]=10, [2]=20, [3]=30, [4]=40, [5]=50, [6]=60, [7]=70, [8]=80} 其实这个表和上面的没有区别,对于上面的纯粹数字表,也可以这样获取值:

    print(t[i])

    四、还可以创建字典型的表

    t = {["x"] = 10, ["y"] = 20, ["w"] = 30, ["k"]=40}可以简化为:

    t = {x = 10, y = 20, w = 30, k = 40} 获取值(注意如果是数字的key就不能用点取)

    print(t.x) print(t["x"]) 注意不能这样获取哦:

    print(t[x])这样的x是一个变量,除非这个变量就是"x"了

    并且这类型的表我们通过范型遍历并不能获取到他的value,只能通过这样达到效果:

    t = {["x"] = 10, ["y"] = 20, ["w"] = 30, ["k"]=40} -- t = {x = 10, y = 20, w = 30, k = 40} print("indexs & values") for k in pairs(t) do print(k) print(t.k) end

    五、甚至,可以弄一些不“规范”的表类型:

    t = {x = 12, y = 99, [3] = "hello"}

    同样地,要遍历这个表可以:

    print("indexs & values") for k in pairs(t) do print(k) print(t[k]) end

    也可以在表中插入表:

    t = { {x = 1, y = 2, w = 22}, {x = 3, y = 10, k = 33} }

    这样可以遍历出这个表结构:

    function traversal(parm) -- 遍历函数 print("nested table") if(parm) then for k in pairs(parm) do print(k) print(parm[k]) end end end print("indexs & values") for k in pairs(t) do print(k) print(t[k]) traversal(t[k]) end

    六、甚至更复杂:

    polyline = { color="blue", thickness=2, npoints=4, {x=0, y=0}, {x=-10, y=0}, {x=-10, y=1}, {x=0, y=1} } 遍历的思路也是一样的:

    for i, v in ipairs(polyline) do print(i) print(v) end print("---------------") for k in pairs(polyline) do print(k) end print("---------------") print(polyline.color) print(polyline.thickness) print(polyline.npoints)

    七、当然,你也可以放置函数和线程和别的数据类型进去:

    local t = {} t.fun = function() print(123) end t.fun()协程:

    threads = {} local co = coroutine.create(function () print("this is a coroutine !") end) -- insert it in the list table.insert(threads, co)

    最后,讲解一个巧用的例子:

    转载请注明原文地址: https://ju.6miu.com/read-964633.html

    最新回复(0)