📚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.lenDevuelve la longitud de una cadena.
local texto = "Hola, mundo"
local longitud = string.len(texto)
print(longitud) -- Salida: 115.1.2. string.sub
string.subDevuelve 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: Hola5.1.3. string.upper y string.lower
string.upper y string.lowerConvierte 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, mundo5.1.4. string.find
string.findBusca 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.gsubReemplaza 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.reverseDevuelve una nueva cadena que es la inversa de la cadena original.
5.1.7. string.format
string.formatDevuelve una cadena formateada. Es similar a printf en C.
5.1.8. string.match y string.gmatch
string.match y string.gmatchstring.matchbusca la primera ocurrencia de un patrón en una cadena y devuelve la parte que coincide.
string.gmatchdevuelve 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.randomseedmath.randomdevuelve un número aleatorio.
math.randomseedestablece 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.ceilmath.floorredondea un número hacia abajo.
math.ceilredondea un número hacia arriba.
5.2.3. math.max y math.min
math.max y math.minDevuelve el valor máximo o mínimo de una lista de números.
5.2.4. math.sqrt
math.sqrtDevuelve la raíz cuadrada de un número.
5.2.5. math.abs
math.absDevuelve el valor absoluto de un número.
5.2.6. math.pow
math.powDevuelve el resultado de elevar un número a una potencia.
5.2.7. math.log y math.exp
math.log y math.expmath.logdevuelve el logaritmo natural (basee) de un número.
math.expdevuelveeelevado 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.insertInserta 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.removeElimina un valor de una tabla en la posición especificada.
5.3.3. table.sort
table.sortOrdena una tabla en orden ascendente.
5.3.4. table.concat
table.concatConcatena los elementos de una tabla en una sola cadena, separados por un delimitador opcional.
5.3.5. table.unpack
table.unpackDevuelve 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
tonumberConvierte una cadena a un número. Devuelve nil si la conversión no es posible.
5.4.2. tostring
tostringConvierte un número (u otro valor) a una cadena.
5.4.3. type
typeDevuelve el tipo de una variable.
5.4.4. toboolean
tobooleanAunque 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.timeDevuelve el tiempo actual en segundos desde el epoch (1 de enero de 1970).
5.5.2. os.date
os.dateFormatea 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.difftimeDevuelve 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.openAbre un archivo en un modo específico (read, write, etc.).
5.6.2. io.read
io.readLee datos de un archivo.
5.6.3. io.write
io.writeEscribe datos en el archivo abierto en el modo de escritura.
5.6.4. io.close
io.closeCierra un archivo abierto.
5.6.5. io.lines
io.linesItera 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.getenvDevuelve el valor de una variable de entorno.
5.7.2. os.exit
os.exitTermina 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