📚Funciones y Librerías Estándar

LUA incluye una serie de funciones y librerías estándar que son fundamentales para realizar operaciones comunes, como manipulación de cadenas, matemáticas, manejo de tablas, conversión de tipos, manejo de fechas y tiempos, y más. A continuación, exploramos estas funciones en detalle.

5.1. Manipulación de Cadenas 📝

LUA proporciona varias funciones para trabajar con cadenas a través de la librería string.

5.1.1. string.len

Devuelve la longitud de una cadena.

local texto = "Hola, mundo"
local longitud = string.len(texto)
print(longitud)  -- Salida: 11

5.1.2. string.sub

Devuelve un subconjunto de la cadena desde el índice de inicio hasta el índice final.

local texto = "Hola, mundo"
local subtexto = string.sub(texto, 1, 4)
print(subtexto)  -- Salida: Hola

5.1.3. string.upper y string.lower

Convierte una cadena a mayúsculas o minúsculas.

local texto = "Hola, Mundo"
local mayusculas = string.upper(texto)
local minusculas = string.lower(texto)
print(mayusculas)  -- Salida: HOLA, MUNDO
print(minusculas)  -- Salida: hola, mundo

5.1.4. string.find

Busca una subcadena dentro de una cadena y devuelve la posición de inicio y fin de la primera ocurrencia. Si no encuentra la subcadena, devuelve nil.

5.1.5. string.gsub

Reemplaza todas las ocurrencias de una subcadena por otra. Devuelve la cadena modificada y el número de sustituciones realizadas.

5.1.6. string.reverse

Devuelve una nueva cadena que es la inversa de la cadena original.

5.1.7. string.format

Devuelve una cadena formateada. Es similar a printf en C.

5.1.8. string.match y string.gmatch

  • string.match busca la primera ocurrencia de un patrón en una cadena y devuelve la parte que coincide.

  • string.gmatch devuelve un iterador para encontrar todas las coincidencias de un patrón.

5.2. Operaciones Matemáticas 🔢

LUA tiene una librería matemática (math) que incluye funciones para realizar operaciones matemáticas comunes.

5.2.1. math.random y math.randomseed

  • math.random devuelve un número aleatorio.

  • math.randomseed establece la semilla para el generador de números aleatorios. Esto es útil para obtener resultados reproducibles.

5.2.2. math.floor y math.ceil

  • math.floor redondea un número hacia abajo.

  • math.ceil redondea un número hacia arriba.

5.2.3. math.max y math.min

Devuelve el valor máximo o mínimo de una lista de números.

5.2.4. math.sqrt

Devuelve la raíz cuadrada de un número.

5.2.5. math.abs

Devuelve el valor absoluto de un número.

5.2.6. math.pow

Devuelve el resultado de elevar un número a una potencia.

5.2.7. math.log y math.exp

  • math.log devuelve el logaritmo natural (base e) de un número.

  • math.exp devuelve e elevado a la potencia especificada.

5.3. Manejo de Tablas 📊

LUA ofrece varias funciones útiles para manipular tablas, como insertar, eliminar y ordenar elementos.

5.3.1. table.insert

Inserta un valor en una tabla en la posición especificada. Si no se especifica la posición, el valor se añade al final.

5.3.2. table.remove

Elimina un valor de una tabla en la posición especificada.

5.3.3. table.sort

Ordena una tabla en orden ascendente.

5.3.4. table.concat

Concatena los elementos de una tabla en una sola cadena, separados por un delimitador opcional.

5.3.5. table.unpack

Devuelve todos los elementos de una tabla como valores separados.

5.4. Conversión de Tipos 🔄

En LUA, es común tener que convertir datos de un tipo a otro, especialmente entre cadenas y números.

5.4.1. tonumber

Convierte una cadena a un número. Devuelve nil si la conversión no es posible.

5.4.2. tostring

Convierte un número (u otro valor) a una cadena.

5.4.3. type

Devuelve el tipo de una variable.

5.4.4. toboolean

Aunque no existe una función nativa llamada toboolean, LUA considera como true cualquier valor que no sea nil o false.

5.5. Manejo de Fechas y Tiempos 🕒

LUA ofrece la librería os para manejar fechas y tiempos.

5.5.1. os.time

Devuelve el tiempo actual en segundos desde el epoch (1 de enero de 1970).

5.5.2. os.date

Formatea una fecha y hora en una cadena o en una tabla con componentes separados (día, mes, año, etc.).

Puedes formatear la fecha como una cadena específica:

5.5.3. os.difftime

Devuelve la diferencia en segundos entre dos tiempos.

5.6. Manejo de Archivos 📁

LUA ofrece funciones para manejar archivos a través de la librería io.

5.6.1. io.open

Abre un archivo en un modo específico (read, write, etc.).

5.6.2. io.read

Lee datos de un archivo.

5.6.3. io.write

Escribe datos en el archivo abierto en el modo de escritura.

5.6.4. io.close

Cierra un archivo abierto.

5.6.5. io.lines

Itera sobre cada línea de un archivo.

5.7. Ejecución de Comandos del Sistema 🖥️

LUA permite la ejecución de comandos del sistema operativo a través de la función os.execute.

5.7.1. os.getenv

Devuelve el valor de una variable de entorno.

5.7.2. os.exit

Termina la ejecución del programa.

Este bloque de código contiene un Tema 5 más amplio sobre las funciones y librerías estándar en LUA, en un formato que puedes copiar y pegar fácilmente. ¡Espero que te sea útil para profundizar aún más en tu aprendizaje de LUA! 😊

Última actualización