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
string.len
Devuelve la longitud de una cadena.
5.1.2. string.sub
string.sub
Devuelve un subconjunto de la cadena desde el índice de inicio hasta el índice final.
5.1.3. string.upper
y string.lower
string.upper
y string.lower
Convierte una cadena a mayúsculas o minúsculas.
5.1.4. string.find
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
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
string.reverse
Devuelve una nueva cadena que es la inversa de la cadena original.
5.1.7. string.format
string.format
Devuelve una cadena formateada. Es similar a printf
en C.
5.1.8. string.match
y string.gmatch
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
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
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
math.max
y math.min
Devuelve el valor máximo o mínimo de una lista de números.
5.2.4. math.sqrt
math.sqrt
Devuelve la raíz cuadrada de un número.
5.2.5. math.abs
math.abs
Devuelve el valor absoluto de un número.
5.2.6. math.pow
math.pow
Devuelve el resultado de elevar un número a una potencia.
5.2.7. math.log
y math.exp
math.log
y math.exp
math.log
devuelve el logaritmo natural (basee
) de un número.
math.exp
devuelvee
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
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
table.remove
Elimina un valor de una tabla en la posición especificada.
5.3.3. table.sort
table.sort
Ordena una tabla en orden ascendente.
5.3.4. table.concat
table.concat
Concatena los elementos de una tabla en una sola cadena, separados por un delimitador opcional.
5.3.5. table.unpack
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
tonumber
Convierte una cadena a un número. Devuelve nil
si la conversión no es posible.
5.4.2. tostring
tostring
Convierte un número (u otro valor) a una cadena.
5.4.3. type
type
Devuelve el tipo de una variable.
5.4.4. toboolean
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
os.time
Devuelve el tiempo actual en segundos desde el epoch (1 de enero de 1970).
5.5.2. os.date
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
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
io.open
Abre un archivo en un modo específico (read
, write
, etc.).
5.6.2. io.read
io.read
Lee datos de un archivo.
5.6.3. io.write
io.write
Escribe datos en el archivo abierto en el modo de escritura.
5.6.4. io.close
io.close
Cierra un archivo abierto.
5.6.5. io.lines
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
os.getenv
Devuelve el valor de una variable de entorno.
5.7.2. os.exit
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