Sintaxis
AADD(<array>, <expresión>)
Propósito
La función AADD() agrega un nuevo elemento al final de un array, aumentando su tamaño. El contenido del nuevo elemento es el resultado suministrado por la expresión.
Si no se especifica la expresión, se atribuirá el valor NIL al nuevo elemento.
Argumentos
< array >
Define el nombre del array en el cual se agregará el nuevo elemento.
< expresión >
Define el contenido que se atribuirá al nuevo elemento del array.
Utilización
La función AADD() se utiliza para aumentar dinámicamente el número de elementos de un array.
Sugerencias
La función AADD() es semejante a la función ASIZE(). Mientras AADD() agrega solamente un elemento en cada vez al array especificado, el ASIZE() puede agregar varios elementos de una única vez, dejando el array especificado con el tamaño deseado. Sin embargo, la función AADD() puede atribuir un contenido al nuevo elemento, mientras que ASIZE() no.
A pesar de parecer semejantes, las funciones AINS() y AADD() tienen una diferencia básica: la función AINS() agrega un nuevo elemento en una determinada posición del array y mueve todos los otros al final, descartando el último. Por lo tanto, no modifica el tamaño del array. La función AADD() agrega un nuevo elemento al final del array, aumentando su tamaño.
Si la expresión especificada es otro array, el nuevo elemento contendrá solamente una referencia al array especificado por el argumento <expresión>.
Ejemplos
Los siguientes ejemplos muestran utilizaciones típicas de la función AADD():
// Crea un array vacío. Es decir, sin elementos
aMatriz := { }
// Agrega un nuevo elemento al array, que tendrá solamente 1 elemento, cuyo contenido es el valor
// numérico 5
AADD(aMatriz, 5)
// Muestra 5
MSGALERT( aMatriz[1] )
// Agrega un elemento más al array, que ahora tendrá 2 elementos
AADD(aMatriz, 10)
// Muestra 10
MSGALERT( aMatriz[2] )
// Agrega un elemento más al array, que pasa a ser multidimensional y a tener 4 elementos, pues el
// elemento agregado es otro array
AADD(aMatriz, { 20, 30 })
// Muestra 20 y 30, respectivamente
MSGALERT(aMatriz[3, 1])
MSGALERT(aMatriz[3, 2])