Une expression est la plus petite unité de code qui a un résultat lorsqu'elle est évaluée. Dans Verse, tout est une expression, ce qui signifie que tout renvoie à une valeur.
Par exemple, dans Verse, if... une expression else, qui dans Verse renvoie une valeur dépendant du contenu de
l'expression blocks. Le code suivant renvoie une valeur de type chaîne, contenant soit “Big!”, soit “Small!”, selon que MyNumber est supérieur à 5 ou non :
if (MyNumber > 5):
“Big!”
else
“Small!”Cela signifie que vous pouvez utiliser directement une expression if ... else comme entrée d'une fonction, au lieu de stocker un résultat, puis d'utiliser ce résultat comme entrée.
Cet exemple est simple, mais le mécanisme fonctionne dans des contextes plus complexes. Par exemple, les boucles renvoient des matrices de valeurs, ce qui permet de créer rapidement de nouvelles matrices à partir de matrices existantes.
Dans le code suivant, MyArray contient toutes les valeurs de NumberArray qui sont inférieures à 5.
MyArray : []int = for(Number := NumberArray, Number < 5):
NumberExpressions faillibles
Une expression faillible est une expression qui peut réussir et produire une valeur, ou échouer et ne renvoyer aucune valeur. Les expressions faillibles ne peuvent être exécutées que dans un contexte d'échec, car ce contexte définit ce qui se passe en cas d'échec de l'expression.
Parmi les exemples d'expressions faillibles figure l'indexation d'une matrice, car un index non valide entraîne un échec, ainsi que l'utilisation d'opérateurs, comme la comparaison de deux valeurs. Pour plus d'informations sur les expressions faillibles dans Verse, consultez la rubrique Échec.
Liste des expressions dans Verse
Le tableau suivant décrit les différents types d'expressions dans Verse. Suivez les liens pour en savoir plus sur chaque expression.
| Expression | Description | L'expression est-elle faillible ? |
|---|---|---|
Littéraux | Un littéral est une valeur fixe dans votre code, par exemple un nombre ou un caractère. Dans Verse, il existe des littéraux pour les types suivants :
| |
Appels de fonction | Un appel de fonction est une expression qui peut prendre deux formes : | Seulement lorsque l'appel de fonction a la forme |
Comparaison | Une expression de comparaison compare deux éléments à l'aide de l'un des opérateurs de comparaison :
Pour plus d'informations, référez-vous à la rubrique Opérateurs. | Oui |
Assignation | Une expression d'assignation stocke une valeur à un emplacement mutable, par exemple lors de l'initialisation d'une constante ou de la modification de la valeur d'une variable. Référez-vous à la rubrique Variables et constantes pour plus d'informations. | |
Math | Une expression mathématique effectue des calculs à l'aide des opérateurs :
Tous ces opérateurs ont également des variantes d'affectation qui peuvent être utilisées avec des pointeurs. Pour plus d'informations, référez-vous à la rubrique Opérateurs. | Uniquement pour la division entière. |
Décision | Une expression de décision utilise les opérateurs | Oui |
Query (requête) | Une expression de requête utilise l'opérateur | Oui |
Instanciation de classe et de structure | La création d'une instance de | |
Flux de contrôle | Le flux de contrôle est l'ordre dans lequel un ordinateur exécute les instructions. Vous pouvez utiliser des expressions telles que
Référez-vous à la rubrique Flux de contrôle pour plus d'informations. | |
Tableau | Une matrice est un conteneur dans lequel vous pouvez stocker des éléments de même type. Les éléments d'une matrice sont dans l'ordre dans lequel vous les insérez dans la matrice, et vous pouvez y accéder par leur position dans la matrice, appelée index. Pour en savoir plus, consultez la rubrique Matrice. | Uniquement lors de l'indexation d'une matrice. |
Tuple | Un tuple est un conteneur dans lequel vous pouvez stocker des éléments d'un ou de plusieurs types. Les éléments d'un tuple sont dans l'ordre où vous les insérez dans ce tuple, et vous pouvez accéder aux éléments par leur position dans le tuple, appelée leur index. Pour en savoir plus, consultez la rubrique Tuple. | |
carte | Un mappage est un conteneur dans lequel vous pouvez stocker des valeurs associées à une autre valeur, appelées paires clé-valeur. Les paires clé-valeur peuvent être constituées de n'importe quelle combinaison de types, tant que le type de clé est comparable. Les éléments d'une carte se trouvent dans l'ordre dans lequel vous insérez les paires clé-valeur dans la carte, et vous pouvez accéder aux éléments par leurs clés uniques. Pour en savoir plus, consultez la rubrique Mappage. | |
option | Une option est un conteneur qui peut avoir une valeur d'un type ou aucune. Pour en savoir plus, consultez la rubrique Option. | |
Portée | Les expressions de plage contiennent tous les nombres compris entre les deux valeurs spécifiées, ces deux valeurs comprises, séparés par |