读《Lua程序设计》笔记--类型与值

table的创建是通过“构造表达式”完成的,最简单的构造表达式就是{}。
1
2
3
4
5
6
7
8
9
a = {} --创建一个table, 并将它的引用存储到a
k = "x"
a[k] = 10  --新条目,key="x", value=10
a[20] = "great"  --新条目, key=20, value="great"
print(a["x"])  -->10
k = 20
print(a[k])  -->"great"
a["x"] = a["x"] + 1  --递增条目"x"
print(a["x"])  -->11
所有table都可以用不同类型的索引来访问值,当需要容纳新条目时,table会自动增长。
1
2
3
4
5
6
7
8
9
10
11
a = {}  --空的table
--创建1000个新条目
for i=1,10000 do a[i] = i*2 end
print(a[9]) -->18
a["x"] = 10
print(a["x"])  -->10
print(a["y"])  -->nil
a.x = 10  -- 等同于a["x"] = 10
print(a.x)  -- 等同于print(a["x"])
print(a.y)  -- 等同于print(a["y"])
-- a.x和a[x]是不同的。前者表示a["x"],后者表示以变量x的值来索引table。