Lua - Bibliotecas estándar

Las bibliotecas estándar de Lua proporcionan un amplio conjunto de funciones que se implementan directamente con la API de C y están integradas con el lenguaje de programación Lua. Estas bibliotecas brindan servicios dentro del lenguaje de programación Lua y también servicios externos como operaciones de archivos y bases de datos.

Estas bibliotecas estándar integradas en la API oficial de C se proporcionan como módulos C separados. Incluye lo siguiente:

  • Biblioteca básica, que incluye la subbiblioteca de corrutinas
  • Biblioteca de módulos
  • Manipulación de cuerdas
  • Manipulación de mesa
  • Biblioteca de matemáticas
  • Entrada y salida de archivos
  • Instalaciones del sistema operativo
  • Instalaciones de depuración

Biblioteca básica

Hemos utilizado la biblioteca básica a lo largo del tutorial en varios temas. La siguiente tabla proporciona enlaces de páginas relacionadas y enumera las funciones que se tratan en varias partes de este tutorial de Lua.

No Señor. Biblioteca / Método y propósito
1

Error Handling

Incluye funciones de manejo de errores como afirmar, error como se explica en Lua - Manejo de errores .

2

Memory Management

Incluye las funciones de administración automática de memoria relacionadas con la recolección de basura como se explica en Lua - Recolección de basura .

3

dofile ([filename])

Abre el archivo y ejecuta el contenido del archivo como un fragmento. Si no se pasa ningún parámetro, esta función ejecuta el contenido de la entrada estándar. Los errores se propagarán a la persona que llama.

4

_G

Por tanto, es la variable global que contiene el entorno global (es decir, _G._G = _G). Lua en sí no usa esta variable.

5

getfenv ([f])

Devuelve el entorno actual en uso por la función. f puede ser una función Lua o un número que especifica la función en ese nivel de pila; el nivel 1 es la función que llama a getfenv. Si la función dada no es una función Lua, o si f es 0, getfenv devuelve el entorno global. El valor predeterminado de f es 1.

6

getmetatable (object)

Si el objeto no tiene una metatabla, devuelve nil. De lo contrario, si la metatabla del objeto tiene un campo "__metatable", devuelve el valor asociado. De lo contrario, devuelve la metatabla del objeto dado.

7

ipairs (t)

Esta función obtiene los índices y valores de las tablas.

8

load (func [, chunkname])

Carga un fragmento utilizando la función func para obtener sus piezas. Cada llamada a func debe devolver una cadena que se concatene con los resultados anteriores.

9

loadfile ([filename]))

Similar a cargar, pero obtiene el fragmento del nombre del archivo o de la entrada estándar, si no se proporciona un nombre de archivo.

10

loadstring (string [, chunkname])

Similar a load, pero obtiene el fragmento de la cadena dada.

11

next (table [, index])

Permite que un programa recorra todos los campos de una tabla. Su primer argumento es una tabla y su segundo argumento es un índice en esta tabla. next devuelve el siguiente índice de la tabla y su valor asociado.

12

pairs (t)

Suspende la corrutina en ejecución. El parámetro pasado a este método actúa como valores de retorno adicionales a la función de reanudación.

13

print (...)

Suspende la corrutina en ejecución. El parámetro pasado a este método actúa como valores de retorno adicionales a la función de reanudación.

14

rawequal (v1, v2)

Comprueba si v1 es igual a v2, sin invocar ningún metamétodo. Devuelve un booleano.

15

rawget (table, index)

Obtiene el valor real de la tabla [índice], sin invocar ningún metamétodo. la mesa debe ser una mesa; El índice puede tener cualquier valor.

dieciséis

rawset (table, index, value)

Establece el valor real de la tabla [índice] en valor, sin invocar ningún metamétodo. la tabla debe ser una tabla, indexar cualquier valor diferente de nil y valorar cualquier valor Lua. Esta función devuelve la tabla.

17

select (index, ...)

Si el índice es un número, devuelve todos los argumentos después del índice del número de argumento. De lo contrario, index debe ser la cadena "#" y select devuelve el número total de argumentos adicionales que recibió.

18

setfenv (f, table)

Establece el entorno que utilizará la función dada. f puede ser una función Lua o un número que especifica la función en ese nivel de pila; el nivel 1 es la función que llama a setfenv. setfenv devuelve la función dada. Como caso especial, cuando f es 0, setfenv cambia el entorno del subproceso en ejecución. En este caso, setfenv no devuelve ningún valor.

19

setmetatable (table, metatable)

Establece la metatabla para la tabla dada. (No puede cambiar la metatabla de otros tipos de Lua, solo de C.) Si metatabla es nil, elimina la metatabla de la tabla dada. Si la metatabla original tiene un campo "__metatable", genera un error. Esta función devuelve la tabla.

20

tonumber (e [, base])

Intenta convertir su argumento en un número. Si el argumento ya es un número o una cadena convertible en un número, tonumber devuelve este número; de lo contrario, devuelve nil.

21

tostring (e)

Recibe un argumento de cualquier tipo y lo convierte en una cadena en un formato razonable. Para tener un control completo de cómo se convierten los números, use string.format.

22

type (v)

Devuelve el tipo de su único argumento, codificado como una cadena. Los posibles resultados de esta función son "nil" (una cadena, no el valor nil), "número", "cadena", "booleano", "tabla", "función", "hilo" y "datos de usuario".

23

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

Devuelve los elementos de la tabla dada.

24

_VERSION

Una variable global (no una función) que contiene una cadena que contiene la versión actual del intérprete. El contenido actual de esta variable es "Lua 5.1".

25

Coroutines

Incluye las funciones de manipulación de corrutinas como se explica en Lua - Coroutines .

Biblioteca de módulos

La biblioteca de módulos proporciona las funciones básicas para cargar módulos en Lua. Exporta una función directamente en el entorno global: require. Todo lo demás se exporta en un paquete de tabla. Los detalles sobre la biblioteca de módulos se explican en el capítulo anterior Lua - Tutorial de módulos .

Manipulación de cuerdas

Lua proporciona un amplio conjunto de funciones de manipulación de cadenas. El tutorial anterior de Lua - Strings cubre esto en detalle.

Manipulación de mesa

Lua depende de las tablas en casi todas sus operaciones. El tutorial anterior de Lua - Tables cubre esto en detalle.

Entrada y salida de archivos

A menudo necesitamos una instalación de almacenamiento de datos en la programación y esto se proporciona mediante las funciones de biblioteca estándar para E / S de archivos en Lua. Se trata en el tutorial anterior de Lua - File I / O.

Instalaciones de depuración

Lua proporciona una biblioteca de depuración que proporciona todas las funciones primitivas para que creemos nuestro propio depurador. Se trata en el tutorial anterior de depuración de Lua .