La méthode collection.every( ) retourne vrai si tous les éléments de la collection ont été évalués à vrai par le test implémenté dans la méthode nomMéthode passée en paramètre.
Par défaut, collection.every( ) évalue l'ensemble de la collection. Optionnellement, vous pouvez passer le numéro de l'élément auquel démarrer l'évaluation dans positionDépart.
- Si positionDépart >= taille de la collection, collection.every( ) retourne false (la collection n'est pas évaluée).
- Si positionDépart < 0, le paramètre est recalculé comme positionDépart:=positionDépart+length (la fin de la collection est considérée comme point de départ du calcul de la position).
- Si positionDépart = 0, l'ensemble de la collection est évalué (défaut).
Dans nomMéthode, passez le nom de la méthode à utiliser pour évaluer les éléments de la collection, ainsi que son ou ses paramètre(s) dans param (optionnel). nomMéthode peut effectuer tout test, avec ou sans paramètres. La méthode reçoit un paramètre de type Objet dans $1 et doit passer true dans $1.result pour chaque élément ayant satisfait aux conditions du test.
nomMéthode reçoit les paramètres suivants :
- dans $1.value : valeur de l'élément à évaluer
- dans $2 : param
- dans $N... : param2...paramN
nomMéthode doit fixer le(s) paramètre(s) suivant(s) :
- $1.result (booléen) : true si la valeur de l'élément est évaluée avec succès, false sinon.
- $1.stop (booléen, optionnel) : true pour stopper le rétroappel de méthode. La valeur retournée est la dernière calculée.
Dans tous les cas, au premier élément retournant false dans $1.result, la méthode collection.every( ) cesse d'appeler nomMéthode et retourne Faux.
C_COLLECTION($c)
$c:=New collection
$c.push(5;3;1;4;6;2)
$b:=$c.every("NumberGreaterThan0")
$c.push(-1)
$b:=$c.every("NumberGreaterThan0")
Avec la méthode NumberGreaterThan0 suivante :
$1.result:=$1.value>0
Cet exemple vérifie que tous les éléments de la collection sont de type réel :
Avec la méthode TypeLookUp suivante :
C_OBJECT($1)
C_LONGINT($2)
If(Value type($1.value)=$2)
$1.result:=True
End if