tavolo Lua (tabella)
tavolo Lua è una struttura di dati utilizzata per aiutarci a fornire diversi tipi di dati, come ad esempio: digitali, dizionari.
tavolo Lua con la matrice associata, è possibile utilizzare qualsiasi tipo di valore per fare un indice della matrice, ma questo valore non è pari a zero.
Lua dimensione della tabella non è fisso, è possibile espandere in base alle loro esigenze.
Lua anche attraverso la tabella per risolvere il modulo (modulo), il pacchetto (package) e l'oggetto (Object) di. Per esempio l'indicazione String.Format "format" per indicizzare la stringa tavolo.
tabella (Tabella) Configurazione
Il costruttore è un'espressione per creare e inizializzare la tabella. tavolo Lua è roba potente unico. Il costruttore più semplice è {} utilizzata per creare una tabella vuota. È possibile inizializzare direttamente l'array:
-- 初始化表 mytable = {} -- 指定值 mytable[1]= "Lua" -- 移除引用 mytable = nil -- lua 垃圾回收会释放内存
Quando tavolo un insieme di elementi, e quindi assegnare un a b, allora A e B alla stessa memoria. Se un set a zero, allora b può anche accedere alla tabella degli elementi. Se non si specificano i punti variabili per una, raccolta dei rifiuti di Lua pulirà la memoria corrispondente.
L'esempio seguente mostra la descrizione sopra della situazione:
-- 简单的 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)
Il codice precedente viene eseguito come risultato di:
mytable 的类型是 table mytable 索引为 1 的元素是 Lua mytable 索引为 wow 的元素是 修改前 alternatetable 索引为 1 的元素是 Lua mytable 索引为 wow 的元素是 修改前 mytable 索引为 wow 的元素是 修改后 alternatetable 是 nil mytable 索引为 wow 的元素是 修改后 mytable 是 nil
Tabella di funzionamento
La seguente tabella elenca i comuni metodi di funzionamento:
No. | Metodo & Purpose |
---|---|
1 | table.concat (tabella [sep [, start [, end]]]): concat è concatenate (collegamento a catena) sigla. Funzione table.concat () specifica i parametri elencati nella parte matrice di tabella di tutti gli elementi da posizione iniziale alla posizione finale, distanziati tra gli elementi del separatore specificato (SEP). |
2 | table.insert (tavolo, [pos,] il valore): Array tabella parte posizione specificata (pos) inserto è un elemento di valore. Parametro Pos è opzionale e default la porzione di estremità della matrice. |
3 | table.maxn (tabella) Specificare il valore chiave della tabella per tutti i numeri positivi il più grande valore della chiave. Se il valore è positivo, l'elemento chiave non è presente, restituisce 0. (Dopo Lua5.2 questo metodo non esiste, questo articolo utilizza una funzione personalizzata per raggiungere) |
4 | table.remove (tabella [pos]) Restituisce un array di porzione di tabella si trova in posizione di elemento pos Successivamente elemento verrà spostato in avanti. Parametro Pos è facoltativo e il valore predefinito è la lunghezza del tavolo, a partire dall'ultimo elemento eliminato. |
5 | table.sort (tabella [, comp]) Per una data tabella in ordine crescente. |
Prossimo guardiamo gli esempi di questi metodi.
Tabella dei collegamenti
Possiamo usare concat () per collegare due tabella:
fruits = {"banana","orange","apple"} -- 返回 table 连接后的字符串 print("连接后的字符串 ",table.concat(fruits)) -- 指定连接字符 print("连接后的字符串 ",table.concat(fruits,", ")) -- 指定索引来连接 table print("连接后的字符串 ",table.concat(fruits,", ", 2,3))
Eseguire i risultati di output di codice di cui sopra:
连接后的字符串 bananaorangeapple 连接后的字符串 banana, orange, apple 连接后的字符串 orange, apple
Inserimento e la rimozione
L'esempio seguente illustra le operazioni di inserimento e rimozione tabella:
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])
Eseguire i risultati di output di codice di cui sopra:
索引为 4 的元素为 mango 索引为 2 的元素为 grapes 最后一个元素为 mango 移除后最后一个元素为 nil
Tabella di smistamento
L'esempio seguente mostra il tipo () di uso, per la Tabella Ordina:
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
Eseguire i risultati di output di codice di cui sopra:
排序前 1 banana 2 orange 3 apple 4 grapes 排序后 1 apple 2 banana 3 grapes 4 orange
Tabella Max
table.maxn dopo Lua5.2 questo metodo non esiste, definiamo metodi table_maxn.
L'esempio seguente mostra come ottenere la tabella di valore massimo:
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))
Eseguire i risultati di output di codice di cui sopra:
tbl 长度 3 tbl 最大值 26