array_aggregate

Explicación

Son agregados de valores del tipo de los elementos del array que se pueden utilizar para inicializar variables o constantes de tipo array, asignarlos a variables de tipo array o emplearlos en otras operaciones que involucren arrays. Un agregado posicional se forma enumerando los valores según su posición. También se pueden definir agregados por asociación nominal, indicando para cada valor la posición a que corresponde, en cuyo caso se pueden enumerar salteados y desordenados. La palabra others sirve para indicar el valor de los elementos no mencionados de forma explícita. El símbolo <> significa que se dará el valor por omisión que esté previsto para el tipo, si lo hay.

Sintaxis

array_aggregate ::= 
   positional_array_aggregate | named_array_aggregate

positional_array_aggregate ::= 
    (expression, expression {, expression})
  | (expression {, expression}, others => expression)
  | (expression {, expression}, others => <>)

named_array_aggregate ::= 
    (array_component_association {, array_component_association})

array_component_association ::= 
    discrete_choice_list => expression
  | discrete_choice_list => <>
discrete_choice_list ::= discrete_choice {| discrete_choice}

discrete_choice ::= expression | discrete_range | others
discrete_range ::= discrete_subtype_indication | rango

Ejemplo

--  Array monodimensional
V: array (1 .. 5) of Integer := (12, 3, 45, 6, 8);
V := (12, 3, 45, others => 0);
V := (others => 0);
V := (4, 3 => 15, 5 => 8, others => 0);
V := (4, 3 => 15, 5 => 8, others => <>);

--  Array multidiemensional (se anidan las dimensiones)
M: array (1..3, 1..2) of Character := (('a','b'),('c','d'),('e','f'));
M := (('a', 'b'),('c', others => 'd'), others => ('e','f'));
M := (3 => ('e','f'), 1 => ('a','b'), others => ('c','d'));

Véase