Table

最简单构造表达式是{},用来创建一个空表。也可以在表里添加一些数据,直接初始化表:

local tab1 = {}
local tab2 = {"Hello", "World", "!"}

Lua中的table其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。

-- table_test.lua
a = {}
a["key"] = "value"
a[10] = 20

for k, v in pairs(a) do
    print(k .. " : " .. v)
end

脚本执行结果是:

$ lua table_test.lua
10 : 20
key : value

与其他语言不同的是,lua中的table下标不是从0开始,而是从1开始:

-- table_test2.lua
a2 = {"Hello", "World", "!"}
for k, v in pairs(a2) do
    print(k .. " : " .. v)
end

脚本执行结果如下:

$ lua table_test2.lua
1 : Hello
2 : World
3 : !

table不会固定长度,有新数据添加时,table长度自动增长,没有初始的table都是nil

a3 = {}
for i = 1, 10 do
    a3[i] = i
end
a3["k"] = "v"

print(a3[1])        --> 1
print(a3[10])       --> 10
print(a3[11])       --> nil
print(a3["k"])      --> v
print(a3["k2"])     --> nil

results matching ""

    No results matching ""