Latest web development tutorials

Lua tabeli (tabela)

Stół Lua jest struktura danych używana do pomóc nam w przygotowaniu różnych typów danych, takich jak: cyfrowe, słowniki.

Lua tabeli powiązanej z tablicy, można użyć dowolny typ wartości, aby indeks tablicy, ale wartość ta wynosi zero.

Lua wielkość stołu nie jest ustalona, ​​można rozszerzyć w zależności od ich potrzeb.

Lua także poprzez tabeli, aby rozwiązać ten moduł (moduł), pakiet (pakiet) oraz obiektu (Object) z. Na przykład oznaczenie string.Format "format" do indeksu ciąg tabeli.


Tabela konfiguracji (tab)

Konstruktor jest wyrazem utworzyć i zainicjować tablicę. Stół Lua jest wyjątkowy potężne rzeczy. Najprostszym konstruktor jest {} służy do tworzenia pustej tabeli. Można bezpośrednio zainicjować tablicę:

-- 初始化表
mytable = {}

-- 指定值
mytable[1]= "Lua"

-- 移除引用
mytable = nil
-- lua 垃圾回收会释放内存

Kiedy złożyć zestaw elementów, a następnie przypisać A do B, a następnie A i B wskazują na ten sam pamięci. Jeśli zestaw do zera, a następnie b mogą również uzyskać dostęp do tabeli elementów. Jeśli użytkownik nie określi zmienne punkty a, zbieranie śmieci Lua będzie oczyścić odpowiednią pamięć.

Poniższy przykład demonstruje, że powyższy opis sytuacji:

-- 简单的 table
mytable = {}
print("mytable 的类型是 ",type(mytable))

mytable[1]= "Lua"
mytable["wow"] = "修改前"
print("mytable 索引为 1 的元素是 ", mytable[1])
print("mytable 索引为 wow 的元素是 ", mytable["wow"])

-- alternatetable和mytable的是指同一个 table
alternatetable = mytable

print("alternatetable 索引为 1 的元素是 ", alternatetable[1])
print("mytable 索引为 wow 的元素是 ", alternatetable["wow"])

alternatetable["wow"] = "修改后"

print("mytable 索引为 wow 的元素是 ", mytable["wow"])

-- 释放变量
alternatetable = nil
print("alternatetable 是 ", alternatetable)

-- mytable 仍然可以访问
print("mytable 索引为 wow 的元素是 ", mytable["wow"])

mytable = nil
print("mytable 是 ", mytable)

Powyższy kod jest wykonywany w wyniku:

mytable 的类型是 	table
mytable 索引为 1 的元素是 	Lua
mytable 索引为 wow 的元素是 	修改前
alternatetable 索引为 1 的元素是 	Lua
mytable 索引为 wow 的元素是 	修改前
mytable 索引为 wow 的元素是 	修改后
alternatetable 是 	nil
mytable 索引为 wow 的元素是 	修改后
mytable 是 	nil

Stół operacyjny

Poniższa tabela zawiera listę wspólnych metod działania:

Nie. Metoda & Purpose
1 table.concat (tabela [, wrzesień [, start [, end]]]):

concat jest concatenate (ogniwo łańcucha) skrót. Funkcja table.concat () określa parametry wymienione w części tablicy tabelę wszystkich pierwiastków z pozycji początkowej do pozycji końcowej, rozmieszczonych pomiędzy elementami w określonym separatorem (SEP).

2 table.insert (tabela, [pos,], wartość):

Array części tabeli podano lokalizację (poz) wkładka jest elementem wartości. Pos parametr jest opcjonalny i domyślnie końcowej części tablicy.

3 table.maxn (tabela)

Określ wartość klucza stół dla wszystkich liczb dodatnich największa wartość klucza. Jeśli wartość jest dodatnia, kluczowym elementem nie jest obecny, to zwraca 0. (Po Lua5.2 metoda ta nie istnieje, artykuł ten wykorzystuje funkcję niestandardową do osiągnięcia)

4 table.remove (tabela [, poz])

Zwraca tablicę części tabeli znajduje się na pozycji elementu poz Następnie Element zostanie przesunięty do przodu. Poz parametr jest opcjonalny i domyślnie do długości stołu, począwszy od ostatniego elementu usunięty.

5 table.sort (tabela [comp])

Dla danej tabeli w porządku rosnącym.

Następnie spojrzeć na przykłady tych metod.

połączenie Tabela

Możemy użyć concat () aby połączyć dwa tabeli:

fruits = {"banana","orange","apple"}
-- 返回 table 连接后的字符串
print("连接后的字符串 ",table.concat(fruits))

-- 指定连接字符
print("连接后的字符串 ",table.concat(fruits,", "))

-- 指定索引来连接 table
print("连接后的字符串 ",table.concat(fruits,", ", 2,3))

Wykonaj powyższe wyniki wyjściowe Kod:

连接后的字符串 	bananaorangeapple
连接后的字符串 	banana, orange, apple
连接后的字符串 	orange, apple

Wkładanie i wyjmowanie

Poniższy przykład pokazuje operacje wstawiania i usuwania tabeli:

fruits = {"banana","orange","apple"}

-- 在末尾插入
table.insert(fruits,"mango")
print("索引为 4 的元素为 ",fruits[4])

-- 在索引为 2 的键处插入
table.insert(fruits,2,"grapes")
print("索引为 2 的元素为 ",fruits[2])

print("最后一个元素为 ",fruits[5])
table.remove(fruits)
print("移除后最后一个元素为 ",fruits[5])

Wykonaj powyższe wyniki wyjściowe Kod:

索引为 4 的元素为 	mango
索引为 2 的元素为 	grapes
最后一个元素为 	mango
移除后最后一个元素为 	nil

Tabela sortowania

Poniższy przykład demonstruje sort () metodę zastosowania, dla tabela Sortuj:

fruits = {"banana","orange","apple","grapes"}
print("排序前")
for k,v in ipairs(fruits) do
	print(k,v)
end

table.sort(fruits)
print("排序后")
for k,v in ipairs(fruits) do
	print(k,v)
end

Wykonaj powyższe wyniki wyjściowe Kod:

排序前
1	banana
2	orange
3	apple
4	grapes
排序后
1	apple
2	banana
3	grapes
4	orange

Tabela Max

table.maxn po Lua5.2 metoda ta nie istnieje, możemy zdefiniować metody table_maxn.

Poniższy przykład pokazuje, w jaki sposób uzyskać tabeli wartości maksymalnej:

function table_maxn(t)
    local mn = 0
    for k, v in pairs(t) do
        if mn < k then
            mn = k
        end
    end
    return mn
end
tbl = {[1] = "a", [2] = "b", [3] = "c", [26] = "z"}
print("tbl 长度 ", #tbl)
print("tbl 最大值 ", table_maxn(tbl))

Wykonaj powyższe wyniki wyjściowe Kod:

tbl 长度 	3
tbl 最大值 	26