$map

Utilisation: $map(nom,code[,séparateur])
Catégorie: multi-valeur
Mis en œuvre: Picard 2.3

La description:

Itère sur chaque élément trouvé dans la variable à valeurs multiples nom et met à jour la valeur de l’élément à la valeur renvoyée par code, renvoyant la variable à valeurs multiples mise à jour. Une valeur littérale représentant une valeur multiple peut être remplacée par nom, en utilisant le séparateur (ou un point-virgule suivi d’un espace « ;  » s’il n’est pas passé) pour contraindre la valeur à une valeur multiple appropriée variable.

Pour chaque boucle, la valeur de l’élément est d’abord stockée dans la variable _loop_value et le décompte est stocké dans la variable _loop_count. Cela permet d’accéder à l’élément ou à la valeur de comptage dans le script de code.

Note

Vous ne pouvez pas enregistrer le code dans une variable puis passer la variable à la fonction en tant que %code% car il sera évalué lorsqu’il sera affecté à la variable plutôt que pendant la boucle.

Exemple:

Les instructions suivantes renverront les valeurs indiquées:

$set(foo,First:A; Second:B)
$map(%foo%,$upper(%_loop_count%=%_loop_value%))    ==>  "1=FIRST:A; SECOND:B"
$map(%foo%,$upper(%_loop_count%=%_loop_value%),:)  ==>  "1=FIRST:2=A; SECOND:3=B"

$setmulti(bar,First:A; Second:B)
$map(%bar%,$upper(%_loop_count%=%_loop_value%))    ==>  "1=FIRST:A; 2=SECOND:B"
$map(%bar%,$upper(%_loop_count%=%_loop_value%),:)  ==>  "1=FIRST:2=A; SECOND:3=B"

$map(First:A; Second:B,
    $upper(%_loop_count%=%_loop_value%))           ==>  "1=FIRST:A; 2=SECOND:B"

$map(First:A; Second:B,
    $upper(%_loop_count%=%_loop_value%),:)         ==>  "1=FIRST:2=A; SECOND:3=B"