01:table 的建立是通過"構造表達式"來完成,最簡單構造表達式是{},用來建立一個空表。也可以在表裡添加一些資料,直接初始化表
--建立一個空表
local table2={}
print(type(table2))
--初始化表
table2={1,2,5,8,89,8}
02:Lua 中的表(table)其實是一個"關聯數組"(associative arrays),數組的索引可以是數字或者是字元串
a={}
--索引是string
a={key=1,key1=2}
print(a.key1)
print(a[2])
--索引是number
sum={"apple","pear","orange"}
for k ,v in pairs(a) do
print(k ..":"..v)
end
2
nil
key:1
key1:2
--添加資料
s={}
s.key="躺下後"
s["key1"]="555"
s[10]=100
print(s.key)
print(s[10])
--修改資料 覆寫
s.key=888
print(s.key)
--删除資料
s.key=nil
print(s.key)
2
nil
key:1
key1:2
躺下後
100
888
nil
03:不同于其他語言的數組把 0 作為數組的初始索引,在 Lua 裡表的預設初始索引一般以 1 開始
local a={"1","2" ,"3" ,"4"}
for k,v in pairs(a) do
print(k..":"..v)
end
1:1
2:2
3:3
4:4
04:table 不會固定長度大小,有新資料添加時 table 長度會自動增長,沒初始的 table 都是 nil
table2={} --空表
print(type(table2))
table2={5,6,8,4}
for k,v in pairs(table2) do
print(k..":"..v)
end
table3={key1=22,key2=66}
print(table3.key1)
print(table3["key1"])
--1:5
--2:6
--3:8
--4:4
--22
--22
04.表的插入
table.insert(arrar, index, value);
table.insert(數組,鍵,值)
– 下面添加 鍵為index的值,如果原來數組中有鍵為index的值依次向後從新排列。
– 如果我們省略了鍵,隻填入數組名 和 值,就會預設把新添加的值放入數組的最後一位。
local array = {1, 2, 3, 4, 5}
table.insert(array, 1, 20000)
for k ,v in pairs(array) do
print(k,v)
end
1 20000
2 1
3 2
4 3
5 4
6 5
local array = {1, 2, 3, 4, 5}
table.insert(array, 20000)
for k ,v in pairs(array) do
print(k,v)
end
1 1
2 2
3 3
4 4
5 5
6 20000
從數組中删除元素 table.remove(數組名,鍵)
–table.remove(數組名) 預設删除最後一個元素
local array = {1, 2, 3, 4, 5}
table.remove(array,1);
for k,v in pairs(array) do
print(v);
end
2
3
4
5
local array = {1, 2, 3, 4, 5}
table.remove(array);
for k,v in pairs(array) do
print(v);
end
1
2
3
4
06.table.sort()函數
table.sort(數組,排序規則) 升序排序
local array = {10, 20, 3, 4, 5}
table.sort(array);
for k,v in pairs(array) do
print(v);
end
3
4
5
10
20
07.建立自己函數的表來作為自己的函數庫
表中存儲函數
local array={};
array.fun1=function()
print("數學學起來很難");
end
array.fun2=function()
print("國文學起來很容易");
end
array.fun1();
array.fun2();
數學學起來很難
國文學起來很容易
08.table.concat
local string_concat = {"string", "int", "char", "float", "double"};
print(table.concat(string_concat));
stringintcharfloatdouble
local string_concat = {"string", "int", "char", "float", "double"};
print(table.concat(string_concat,"|"));
string|int|char|float|double
local array = {10, 20, 3, 400, 1,2};
local max=table.maxn(array);
print(max);
6
a={1,3,a='b',[6]='six',[10]='ten'}
local max=table.maxn(a);
print(max);
10
a={a='b','six','ten'}
local max=table.maxn(a);
print(max);
0