Recorrido de Arrays Multi-Dimensionales - AWK

No existe ninguna sentencia especial for que escanee un array multidimensional; no puede existir ninguna, porque en realidad no hay arrays o elementos multidimensionales; existe solo una forma de acceso a un array multidimensional.

Sin embargo, si tu programa tiene un array que es siempre accedido como multidimensional, puedes obtener el efecto de escanearlo combinando la sentencia de escaneo for  con la función implícita split. Funciona de la siguiente manera:

for (indice_combinado in array) { split(índice_combinado, array_índices, SUBSEP)
...
}

Esto encuentra cada concatenación, índice combinado del array, y lo divide en índices individuales separándolos por las posiciones donde aparezca el valor de SUBSEP. Los índices separados se convierten en los elementos del array array_índices.

Por lo que, supón que has almacenado previamente en array[1,”foo”]; entonces un elemento con índice "1\034foo" existe en el array. (Recuerda que el valor por defecto de SUBSEP contiene el carácter con código 034). Antes o después, la sentencia for encontrará ese índice y realizará una iteración en la cual índice_combinado tomará el valor "1\034foo". Entonces la función split se llamará con los siguientes parámetros:

split("1\034foo", array_índices, "\034")

El resultado de esto es fijar el valor 1 para array_índices[1] y el valor “foo” para array_índices[2].
Por lo que, la secuencia original de índices separados ha sido recuperada.














Publicar un comentario

0 Comentarios