Nuovo per Lua - l'esercizio Tabella
Domanda
Qualcuno può spiegare questo a me? Ho capito attraverso questo esercitazione che questo è noto come un tavolo. Venendo da un C / C ++ sfondo, qualcuno può spiegare come funziona questo (sto cercando di capire un codice Lua esistente)? ??
config = {
devices = {
C56 = "/dev/ttyS2",
ELTRA = "/dev/ttyS3",
-- MICORE = "/dev/ttyS4",
HID = "/dev/ttyS1",
KEYCARD = {
-- [6] = { tty="/dev/ttyS1", speed=9600 },
[7] = { tty="/dev/ttyS4", speed=9600 },
},
},
}
E 'una tabella di configurazione, costituito da un tavolo dispositivo, ma poi c'è un tavolo KEYCARD? Quali sono C56 e ELTRA chiamato Lua? Sono loro campi?
Soluzione
Un tavolo in Lua è solo una mappa non tipizzato, come oggetti JavaScript o dizionari Python. Quello valore collegate tabella (come "dispositivi" o 6) con un altro valore (come "/ dev / ttyS2"). Il valore potrebbe essere un'altra tabella. Le tabelle vengono utilizzati per creare oggetti, mappe e gli array.
Nel tuo esempio, il config riferimenti alle variabili di un tavolo. Tale tabella ha un elemento, "devices", il cui valore è un'altra tabella. Questo tavolo ha 5 elementi. Quattro di questi elementi ( "C56", "ELTRA", "MICORE", e "HID") hanno stringhe come i loro valori. Il quinto elemento ( "KEYCARD") ha un tavolo come il suo valore. Questo tabella ha due elementi (6, 7) i cui valori sono altre tabelle (ciascuno dei due elementi).
Altri suggerimenti
Hai un tavolo di configurazione due sottotabelle all'interno di esso, dispositivi e Keycard, che è una sottotabella dei dispositivi. E 'stato un po' che ho usato Lua, ma per l'accesso, ad esempio ELTRA, devi digitare Config.devices.ELTRA e di accedere al 7 keycard si digita Config.devices.KEYCARD [7] Per arrivare alla velocità della la tessera magnetica, si potrebbe fare Velocità = Config.devices.KEYCARD [7] .speed