{ {type='rows', default={font={size=21}, line_height=25}, {type='text', font={size=28}, line_height=50, {'Lua@{Lua} > tablas', attrs={ Lua={target='--lua'}, }}, }, {type='filler', height=15}, {type='text', "Las tablas de Lua son una forma versátil de agrupar datos de maneras que facilitan cortarlos y dividirlos."}, {type='filler', height=15}, {type='text', '{} es un valor/expresión de tabla vacía.'}, {type='filler', height=10}, {type='text', {'h = {11, 12, 13} crea un em@{arreglo}, una tabla que puede consultarse por em@{claves} numéricas.', attrs={ em={font={italic=true}}}}}, {type='text', ' h[1] es ahora 11, h[2] es 12 y así sucesivamente.'}, {type='filler', height=10}, {type='text', 'h = {a=34} crea una tabla que puede consultarse por claves de cadena.'}, {type='text', " h['a'] es ahora 34, h['b'] es 35."}, {type='text', ' También puedes acortar claves de cadena constantes usando puntos. h.a es 34, h.b es 35.'}, {type='filler', height=10}, {type='text', 'si h es un arreglo. #h es una expresión que devuelve la longitud de h'}, {type='text', " Las claves de cadena no cuentan hacia la longitud de un arreglo."}, {type='text', ' Los arreglos también se detienen en la primera ranura faltante/nil. La longitud de {1, 2, nil, 4} es 2.'}, {type='filler', height=15}, {type='text', 'Algunas funciones útiles que operan en tablas:', font_size=28}, {type='filler', height=15}, {type='text', 'pairs(h)', font={size=24}}, {type='text', {' Devuelve un em@{iterador}, un tipo de función, que te permite recorrer convenientemente todas las claves de una tabla.', attrs={ em={font={italic=true}}}}}, {type='text', ' Por ejemplo, este programa imprimirá el contenido de una tabla: for key, value in pairs(h) do print(key, value) end'}, {type='filler', height=15}, {type='text', 'Algunas funciones útiles que operan en arreglos:', font_size=28}, {type='filler', height=15}, {type='text', 'ipairs(h)', font={size=24}}, {type='text', " Devuelve un iterador que te permite recorrer convenientemente índices y elementos de un arreglo."}, {type='text', ' Por ejemplo, este programa imprimirá el contenido de un arreglo: for _, x in ipairs(h) do print(x) end'}, {type='filler', height=10}, {type='text', 'table.insert(h, value)', font={size=24}}, {type='text', ' Añade un valor al final del arreglo h.'}, {type='filler', height=10}, {type='text', 'table.insert(h, index, value)', font={size=24}}, {type='text', ' Inserta un valor en el índice en el medio del arreglo h.'}, {type='filler', height=10}, {type='text', 'table.remove(h)', font={size=24}}, {type='text', ' Remueve el valor en el índice final del arreglo h.'}, {type='filler', height=10}, {type='text', 'table.remove(h, index)', font={size=24}}, {type='text', ' Remueve el valor en el índice en el medio del arreglo h, compactando los valores posteriores hacia arriba.'}, {type='filler', height=10}, {type='text', 'table.sort(h)', font={size=24}}, {type='text', ' Ordena los elementos en el arreglo h.'}, {type='filler', height=10}, {type='text', 'table.sort(h, f)', font={size=24}}, {type='text', ' Ordena los elementos en el arreglo h por una función de comparación personalizada f.'}, {type='text', ' f necesita aceptar 2 argumentos y devolver true si el primero es menor que el segundo.'}, {type='filler', height=10}, {type='text', 'table.reverse(h)', font={size=24}}, {type='text', ' Invierte el orden de los elementos del arreglo h para que el elemento final se convierta en el primero, etc.'}, {type='filler', height=10}, {type='text', 'table.concat(h)', font={size=24}}, {type='text', ' Concatena todos los elementos del arreglo h en una sola cadena y la devuelve.'}, {type='text', ' Todos los elementos deben ser cadenas.'}, } }