码迷,mamicode.com
首页 > 其他好文 > 详细

Lua笔记——2.表Table

时间:2018-02-27 14:04:14      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:end   创建   技术分享   组元   name   java   images   指定   数据类型   

#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

标签:end   创建   技术分享   组元   name   java   images   指定   数据类型   

原文地址:https://www.cnblogs.com/sylvan/p/8478364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!