11.lua中的table
[ ]:表示可选
基本形式: tab1 = {[元素1],[元素2]} ; 元素1,元素2,可以是不同的类型
1.table定义一维数组
lua中数组下标是从1开始的,且同一数组可以存储不同类型的数据(这与C不一样)
t1 = {1,2,3,4}
t2 = {"a","b","c"}
t3 = {1,2,"a","b"}
t3[5] = "fsfdsf"
print (t1[2])
print (t2[3])
print (t3[1])
print (t3[5])
//输出结果如下:
2
c
1
fsfdsf
2.table定义二维数组
t1 = {} --定义空
for i = 1, 4 do
t1[i] = {} --这里必须要定义空
for j = 1, 3 do
t1[i][j] = i + j
end
end
--遍历
for i = 1, 4 do
str = ""
for j = 1, 3 do
str = str..t1[i][j].." "
end
print(str)
end
//输出结果如下:
2 3 4
3 4 5
4 5 6
5 6 7
3.table定义map
基本形式:tab1 = { key1 = value1, key2 = value2} 或 tab1 = { ["key1"] = value1, ["key2"] = value2}
//示例
text = "xx"
--table定义map
t1 = {name = "张三"}
t2 = {["name"] = "李四"}
t3 = { [text.."pl"] = "jkl"} --定义map其key为表达式
--下标表方式操作
print(t1["name"])
print(t2["name"])
--.方式操作
t1.age = 22
t2.age = 23
print(t1.age)
print(t2.age)
print(t3.xxpl)
//输出结果如下:
张三
李四
22
23
jkl
//数组元素为map
t1 = {{name = "张三",age = 20},{name = "李四",age = 21}}
for i = 1,2 do
print(t1[i].name..": "..t1[i].age)
end
输出结果如下:
张三: 20
李四: 21