Lua笔记——2.表Table

Posted SylvanYan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua笔记——2.表Table相关的知识,希望对你有一定的参考价值。

#table是Lua语言中的数据结构,用来帮助在Lua中创建不同的数据类型,例如数组、字典、模块...

数组:

--[[
使用table创建数组
]]--
tableArray1 = {}    --数组结构的初始化

tableArray1 = {"c","c++","c#","oc","java","kotlin",["s1"]= "python",["s2"]= "lua", ["s3"]= "javascript"}    --使用默认索引,以及自定义索引

tableArray1[1] = "php"      --使用默认索引对值进行修改

function ipairsPrint(table)
    print("\nipairs迭代器对索引升序遍历,索引中断遍历停止")
    for k,v in ipairs(table) do
        print(k .. "---"..v)
    end
end
ipairsPrint(tableArray1)

function pairsPrint(table)
    print("\npairs迭代器遍历所有元素")
    for k,v in pairs(table) do
        print(k.."--"..v)
    end
end
pairsPrint(tableArray1)

技术分享图片

table数组相关方法

print("table模块下常用方法:")

res1 = table.concat(tableArray1)    --字符串数组相连接
res2 = table.concat(tableArray1,">")    --给字符串数组元素添加分隔符并返回字符串
res3 = table.concat(tableArray1,">",2,6)    --给字符串数组指定元素添加分隔符返回字符串
print("table.concat(tableParam)方法的结果是:",res1)
print("table.concat(tableParam,splitMark)的结果是:",res2)
print("table.concat(tableParam,splitMark,startIndex,endIndex)的结果是:",res3)

res4 = table.insert(tableArray1,"swift")    --给数组插入元素,无其他参数直接在末尾插入
res41 = table.concat(tableArray1,">")
print("table.insert(tableParam,insertValue)的结果是:",res41)    --插入后的并连接字符串之后的结果
print("插入之前tableArray1[3] = ",tableArray1[3])
res5 = table.insert(tableArray1,3,"javascript")     --给指定位置添加元素,原位置及其后的元素依次后移
print("插入之后tableArray1[3] = ",tableArray1[3])
res5 = table.insert(tableArray1 ,4,"go")
res51 = table.concat(tableArray1,">")
print("table.insert(tableParam,insertIndex,insertValue的结果是:)",res51)
print("4号位置插入go之后的tableArray为:")
ipairsPrint(tableArray1)

res6 = table.remove(tableArray1,3)  --移除指定位置上的元素后,其后的元素依次向前移动

技术分享图片

table其他方法

print("\ntable相关方法\n")
function table_max (table)
    local max
    for k,v in pairs(table) do
        if(max == nil) then
            max = v
        end
        if(max < v) then
            max = v
        end
    end
    print( "the max of the table is :",max)
    return max
end
tableArray2 = {5,35,5,2,4,555,4,52,4,eg1 = 123, eg2 = 345 }
print("\nUse the table.sort function")
table.sort(tableArray2)
ipairsPrint(tableArray2)
pairsPrint(tableArray2)
print("\nGet the max num of a number table")
table_max(tableArray2)
--[[
在Lua中使用#tableName所得到的长度只到索引中断处
]]--
print(#tableArray2) --
--可以自行书写一个获取数组结构表的成员个数
function table_num(t)
    local num = 0
    for k,v in pairs(t) do
        num = num +1
    end
    return num
end
print(table_num(tableArray2))

技术分享图片

以上是关于Lua笔记——2.表Table的主要内容,如果未能解决你的问题,请参考以下文章

Lua笔记——4.环境Environment

[Unity] Lua 学习笔记

[Unity] Lua 学习笔记

[Unity] Lua 学习笔记

[Unity] Lua 学习笔记

在lua中使用循环更改表值