table.concat()
Parte de la sección Logic & Flow del Journey de Lua de Coddy — lección 5 de 54.
A veces necesitas combinar todos los elementos de una tabla de estilo lista en una sola cadena. Lua proporciona la función table.concat() específicamente para este propósito, lo que facilita la unión de los elementos de la tabla con un separador de tu elección.
La sintaxis básica se ve así:
local result = table.concat(myTable, separator)Aquí tienes un ejemplo sencillo con una lista de palabras:
local words = {"Hello", "from", "Lua"}
local sentence = table.concat(words, " ")
print(sentence) -- Resultado: Hello from LuaTambién puedes controlar qué parte de la tabla unir proporcionando las posiciones de inicio y fin como argumentos adicionales. Esto es útil cuando solo quieres combinar elementos específicos:
local numbers = {"1", "2", "3", "4", "5"}
local partial = table.concat(numbers, "-", 2, 4)
print(partial) -- Salida: 2-3-4La función table.concat() funciona exclusivamente con tablas de tipo lista y convierte cada elemento en una cadena antes de unirlos.
Desafío
FácilEscribe una función buildPath que reciba una tabla folders y una cadena separator, y devuelva una única cadena de ruta con todas las carpetas unidas por el separador.
Usa table.concat() para combinar todos los nombres de las carpetas en una única cadena de ruta.
Parámetros:
folders(table): Una tabla de tipo lista que contiene nombres de carpetas como cadenasseparator(string): El carácter o cadena a utilizar entre los nombres de las carpetas (por ejemplo,"/"o"\\")
Devuelve: Una única cadena con todas las carpetas unidas por el separador (string)
Hoja de referencia
La función table.concat() combina todos los elementos de una tabla de tipo lista en una sola cadena con un separador:
local result = table.concat(myTable, separator)Ejemplo básico:
local words = {"Hello", "from", "Lua"}
local sentence = table.concat(words, " ")
print(sentence) -- Output: Hello from LuaPuedes especificar las posiciones de inicio y fin para unir solo elementos específicos:
local numbers = {"1", "2", "3", "4", "5"}
local partial = table.concat(numbers, "-", 2, 4)
print(partial) -- Output: 2-3-4La función funciona exclusivamente con tablas de tipo lista y convierte cada elemento en una cadena antes de unirlos.
Pruébalo tú mismo
function buildPath(folders, separator)
-- Escribe el código aquí
end
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Logic & Flow
1Iteración avanzada de tablas
Iterar con pairs()Iterar con ipairs()pairs() vs. ipairs()Resumen - Ficha de personaje2Más funciones de la librería table
table.concat()Construcción de tablas y unpack()table.sort()Ordenamiento personalizado con funcionesRepaso - Tabla de puntuaciones altas