Lua - Librerie standard

Le librerie standard Lua forniscono un ricco set di funzioni che viene implementato direttamente con l'API C ed è integrato con il linguaggio di programmazione Lua. Queste librerie forniscono servizi all'interno del linguaggio di programmazione Lua e anche servizi esterni come operazioni su file e db.

Queste librerie standard integrate nell'API C ufficiale sono fornite come moduli C separati. Include quanto segue:

  • Libreria di base, che include la sotto-libreria coroutine
  • Libreria moduli
  • Manipolazione delle stringhe
  • Manipolazione della tabella
  • Libreria matematica
  • Input e output di file
  • Strutture del sistema operativo
  • Strutture di debug

Libreria di base

Abbiamo utilizzato la libreria di base durante il tutorial sotto vari argomenti. La tabella seguente fornisce collegamenti a pagine correlate ed elenca le funzioni trattate in varie parti di questo tutorial Lua.

Sr.No. Libreria / Metodo e scopo
1

Error Handling

Include funzioni di gestione degli errori come asserzione, errore come spiegato in Lua - Gestione degli errori .

2

Memory Management

Include le funzioni di gestione automatica della memoria relative alla garbage collection come spiegato in Lua - Garbage Collection .

3

dofile ([filename])

Apre il file ed esegue il contenuto del file come un blocco. Se non viene passato alcun parametro, questa funzione esegue il contenuto dello standard input. Gli errori verranno propagati al chiamante.

4

_G

Quindi è la variabile globale che contiene l'ambiente globale (cioè, _G._G = _G). Lua stesso non utilizza questa variabile.

5

getfenv ([f])

Restituisce l'ambiente corrente utilizzato dalla funzione. f può essere una funzione Lua o un numero che specifica la funzione a quel livello di stack - Il livello 1 è la funzione che chiama getfenv. Se la funzione data non è una funzione Lua, o se f è 0, getfenv restituisce l'ambiente globale. L'impostazione predefinita per f è 1.

6

getmetatable (object)

Se l'oggetto non ha un metatable, restituisce nil. Altrimenti, se il metatable dell'oggetto ha un campo "__metatable", restituisce il valore associato. In caso contrario, restituisce la metatabile dell'oggetto specificato.

7

ipairs (t)

Questa funzione recupera gli indici e i valori delle tabelle.

8

load (func [, chunkname])

Carica un pezzo usando la funzione func per ottenere i suoi pezzi. Ogni chiamata a func deve restituire una stringa che si concatena con i risultati precedenti.

9

loadfile ([filename]))

Simile a load, ma ottiene il blocco dal file nomefile o dallo standard input, se non viene fornito alcun nome file.

10

loadstring (string [, chunkname])

Simile a load, ma ottiene il blocco dalla stringa data.

11

next (table [, index])

Consente a un programma di attraversare tutti i campi di una tabella. Il suo primo argomento è una tabella e il suo secondo argomento è un indice in questa tabella. next restituisce l'indice successivo della tabella e il valore associato.

12

pairs (t)

Sospende la coroutine in esecuzione. Il parametro passato a questo metodo funge da valori di ritorno aggiuntivi per la funzione di ripresa.

13

print (...)

Sospende la coroutine in esecuzione. Il parametro passato a questo metodo funge da valori di ritorno aggiuntivi per la funzione di ripresa.

14

rawequal (v1, v2)

Verifica se v1 è uguale a v2, senza richiamare alcun metametodo. Restituisce un valore booleano.

15

rawget (table, index)

Ottiene il valore reale di table [index], senza richiamare alcun metametodo. table deve essere un tavolo; index può essere qualsiasi valore.

16

rawset (table, index, value)

Imposta il valore reale di table [index] su value, senza richiamare alcun metametodo. table deve essere una tabella, indicizzare qualsiasi valore diverso da zero e valorizzare qualsiasi valore Lua. Questa funzione restituisce table.

17

select (index, ...)

Se index è un numero, restituisce tutti gli argomenti dopo il numero di argomento index. In caso contrario, index deve essere la stringa "#" e select restituisce il numero totale di argomenti aggiuntivi ricevuti.

18

setfenv (f, table)

Imposta l'ambiente che deve essere utilizzato dalla funzione data. f può essere una funzione Lua o un numero che specifica la funzione a quel livello di stack - Il livello 1 è la funzione che chiama setfenv. setfenv restituisce la funzione data. Come caso speciale, quando f è 0 setfenv cambia l'ambiente del thread in esecuzione. In questo caso, setfenv non restituisce alcun valore.

19

setmetatable (table, metatable)

Imposta il metatable per la tabella data. (Non è possibile modificare il metatable di altri tipi da Lua, solo da C.) Se metatable è nil, rimuove il metatable della tabella data. Se il metatable originale ha un campo "__metatable", genera un errore. Questa funzione restituisce table.

20

tonumber (e [, base])

Prova a convertire il suo argomento in un numero. Se l'argomento è già un numero o una stringa convertibile in un numero, tonumber restituisce questo numero; in caso contrario, restituisce zero.

21

tostring (e)

Riceve un argomento di qualsiasi tipo e lo converte in una stringa in un formato ragionevole. Per il controllo completo di come vengono convertiti i numeri, utilizzare string.format.

22

type (v)

Restituisce il tipo del suo unico argomento, codificato come una stringa. I possibili risultati di questa funzione sono "nil" (una stringa, non il valore nil), "number", "string", "boolean", "table", "function", "thread" e "userdata".

23

unpack (list [, i [, j]])

Restituisce gli elementi dalla tabella data.

24

_VERSION

Una variabile globale (non una funzione) che contiene una stringa contenente la versione corrente dell'interprete. Il contenuto corrente di questa variabile è "Lua 5.1".

25

Coroutines

Include le funzioni di manipolazione della coroutine come spiegato in Lua - Coroutines .

Libreria dei moduli

La libreria dei moduli fornisce le funzioni di base per caricare i moduli in Lua. Esporta una funzione direttamente nell'ambiente globale: require. Tutto il resto viene esportato in un pacchetto di tabelle. I dettagli sulla libreria dei moduli sono spiegati nel capitolo precedente Lua - Tutorial sui moduli .

Manipolazione delle stringhe

Lua fornisce un ricco set di funzioni di manipolazione delle stringhe. Il precedente tutorial Lua - Strings lo copre in dettaglio.

Manipolazione della tabella

Lua dipende dalle tabelle in quasi tutte le sue operazioni. Il precedente tutorial Lua - Tabelle lo copre in dettaglio.

Input e output di file

Spesso abbiamo bisogno di una struttura di memorizzazione dei dati nella programmazione e questa è fornita dalle funzioni di libreria standard per I / O di file in Lua. È discusso nel precedente tutorial Lua - File I / O.

Strutture di debug

Lua fornisce una libreria di debug che fornisce tutte le funzioni primitive per creare il nostro debugger. È discusso in Lua precedente - Esercitazione sul debug .