07 Lua基础-table 实例化和遍历方式

1.table 实例化

  1. Lua 中 table 的索引不是 0 开始,而是 1 开始
  2. table 访问的方式与数组的方式类似
-- table 
-- 建立一个空的 table
mytable = {}

--建立一个有数据的 table
mytableData = {

sequenceDiagram
A->>B: How are you?
B->>A: Great!


    1,
    2,
    3,
    4
}

-- #mytableData 井号表示取长度
for i=1,#mytableData do
    print(mytableData[i])
end

2.table 的遍历方式

table 是一个动态对象,也类似于程序指针,支持链表、键值对形式

2.1 第一种遍历方式-For 循环

-- table 例子
mTable = {
    -- 索引
    1,
    k = "x",
    j = "y",
    4,
    5
}

-- 第一种遍历方式
for i=1, #mTable do
    print("value is " ..mTable[i])
end

运行结果

value is 1
value is 4
value is 5
[Finished in 0.1s]

2.2 第二种遍历方式-迭代器

-- table 例子
mTable = {
    -- 索引
    1,
    k = "x",
    j = "y",
    4,
    5
}

-- 第二种遍历方式-迭代器
for i,v in ipairs(mTable) do
    print(i,v)
end

运行结果

1   1
2   4
3   5
[Finished in 0.1s]

2.3 第三种遍历方式-键值对方式

pairs 将所有的值显示出来

-- table 例子
mTable = {
    -- 索引
    1,
    k = "x",
    j = "y",
    4,
    5
}

-- 第三种遍历方式-键值对方式
for k,v in pairs(mTable) do
    print(k,v)
end

运行结果

1   1
2   4
3   5
k   x
j   y
[Finished in 0.1s]

上述不是顺序索引

3.table 表示键值对

  • a.x 等价于 a[“x”]
  • a[x] 以变量 x 的值来索引 table
-- table 键值对
mTable = {
    -- 索引
    k = "x"
}



print(mTable["k"])
-- 很 C 语言
print(mTable.k)

--[[
a.x 等价于 a["x"]
a[x] 以变量 x 的值来索引 table
]]
s = "a"
mTable[s] = 10
print(mTable[s])

猜你喜欢

转载自blog.csdn.net/su749520/article/details/80722515