Opérateurs de comparaison simples
| Opérateurs simples | ||
|---|---|---|
| Exemple | Type de retour | Description |
| a == b | Égal | TRUE si a est égal à b après le transtypage. |
| a != b | Différent | TRUE si a est différent de b après le transtypage. |
| a > b | Plus petit que | TRUE si a est strictement plus petit que b. |
| a<= b | Plus petit ou égal à | TRUE si a est plus petit ou égale à b. |
| a > b | Plus grand que | TRUE si a est strictement plus grand que b. |
| a >= b | Plus grand ou égal | TRUE si a est plus grand ou égale à b. |
Contrairement à certains langages comme PHP, ces opérateurs ne peuvent être utilisés sur des types textuels. Ainsi, le DI# ne fait donc pas de comparaisons du style « ordre alphabétique » ou « if ("abc" < "bcd") » serait vrai par exemple.
Opérateurs de comparaison complexes
LIKE (ou son contraire NOT LIKE) : L’opérateur LIKE permet d’effectuer une recherche sur un modèle particulier. Il est par exemple possible de rechercher si la valeur d’une chaîne de caractère commence par telle ou telle lettre.
- LIKE "%a" : le caractère « % » est un caractère joker qui remplace tous les autres caractères. Ainsi, ce modèle permet de rechercher toutes les chaînes de caractère qui se termine par un « a ».
- LIKE "a%" : ce modèle permet de rechercher toutes les lignes de « colonne » qui commence par un « a ».
- LIKE "%a%" : ce modèle est utilisé pour rechercher tous les enregistrements qui utilisent le caractère « a ».
- LIKE "pa%on" : ce modèle permet de rechercher les chaînes qui commence par « pa » et qui se terminent par « on », comme « pantalon » ou « pardon ».
Note : Utiliser l’opérateur LIKE sans modèle sur une chaîne de caractère produit le même effet que d’utiliser l’opérateur égal == .
CONTAINS (ou son contraire NOT CONTAINS) : L’opérateur CONTAINS permet d’effectuer une recherche sur un modèle particulier. Il est par exemple possible de rechercher si la valeur est contenue dans une chaîne de caractères.
Note : Utiliser l’opérateur CONTAINS sur une chaîne de caractère produit le même effet que d’utiliser l’opérateur LIKE avec ce modèle "%a%". Les opérateurs LIKE et CONTAINS ne s’appliquent que sur des chaînes de caractères. Autrement dit, il n’est pas possible d’utiliser CONTAINS pour savoir si une valeur est contenue dans un tableau par exemple.
IS NULL (ou son contraire IS NOT NULL) : L’opérateur IS NULL permet de savoir si la variable contient une valeur.
string a = "ceci est un test"; output.write(a contains "ceci" ? true : false); // Affiche True |
Opérateurs arithmétiques
| Opérateurs supportés | ||
|---|---|---|
| Exemple | Nom | Résultat |
| a + b | Addition | Somme de a et b. |
| a - b | Soustraction | Différence de a et b. |
| a * b | Multiplication | Produit de a et b. |
| a / b | Division | Quotient de a et b. |
| a % b | Modulo | Reste de a divisé par b. |
Note : la négation d’une valeur n’est pas supportée. Ainsi l’expression « -b » ne compilera pas. Ainsi une soustraction écrite ainsi « a - b » ne compilera pas également. Il est donc important de toujours laisser un espace entre l’opérateur de soustraction et la valeur. L’expression « a - b » compilera.
Opérateurs de tableaux
Opération unique
- Ajouter un item à une position fixe :
x[0] = 123; // ajouter l'entier 123 à la position 0 du tableau - Ajouter un item à la fin d’un tableau dynamique :
x[] += "test"; // ajoute "test" à la fin du tableau - Supprimer un item d’un tableau dynamique :
x[] -= "test"; // efface toutes les instances égales à "test" du tableau
Opération en lot
- Assigner plusieurs valeurs en une seule instruction :
x = { "blue", "red", "green" };
// x contient maintenant blue, red et green
Attention, cette instanciation ne fonctionnera que si toutes valeurs passées sont bien du même type que le tableau, ici des chaînes de caractères. - Ajouter des éléments à la fin d’un tableau dynamique :
x[] += { "blue", "pink", "blue" };
// x contient maintenant blue, red, green, blue, pink et blue - Effacer toutes les instances d’une ou plusieurs valeurs données d’un tableau dynamique :
x[] -= { "blue", "pink"};
// x contient maintenant red et green