|
||||||||||||||||||
Notion de tuple Un tuple n'est pas un objet ni une expression, mais une construction du language. Un tuple est une liste de variables séparées par des virgules et non enclos par quoi que ce soit. Un tuple d'expressions peut suivre l'instruction return. Un tuple de variables peut être assigné par un appel de fonction pourvu que la fonction retourne un tuple avec le même nombre d'éléments. Il peut être assigné soit avec un autre tuple ayant le même nombre d'éléments, ou une seule expression, auquel cas cette expression sera assignée à chaque variable du tuple. Assignement de tuple Il y a deux façons de réaliser un assignement multiple. Dans le premier cas, en initialisant plusieurs variables avec une même valeur. Exemple: x, y, z = 0 Dans ce cas, les trois variables x, y, z sont initialisées avec la valeur zéro. Mais on peut aussi assigner plusieurs valeurs à plusieurs variables à la fois. Exemple: x, y, z = 1, 2, 3 Ici, x est assigné avec 1, y avec 2 et z avec 3. Dans ce second cas, le nombre de cibles doit correspondre au nombre de valeurs, sinon, c'est une erreur. L'assignement multiple est spécialement utile pour permettre à une fonction de retourner plusieurs valeurs à la fois. Par exemple, nous avons une fonction nommée litCouleur() qui retourne les composants rouge, vert, bleu d'une couleur, nous pouvons écrire: int rouge, vert, bleu rouge, vert, bleu = litCouleur() Le compilateur sait que la fonction litCouleur() a été définie pour retourner trois valeurs, et donc cela correspond au nombre de variables. Si la fonction avait été définie pour retourner une seule valeur, les variables seraient toutes assignées avec cette même valeur. Si le nombre de valeurs était supérieur à un, mais différent du nombre de variables à gauche, se serait une erreur. Au contraire de la déclaration multiple, un assignement multiple peut se faire avec des variables de types différents. Exemple: int x text t x, t = 1000, "abc" L'assignement multiple peut s'utiliser avec les éléments d'un tableau aussi. Les tableaux ont une taille dynamique et donc, le nombre de cible n'a pas besoin de correspondre au nombre d'éléments, et si le tableau n'a qu'un seul élément, seule la première variable sera assignée. Exemple: x, y, z = array(1, 2, 3, 4) Est équivalent à x = 1, y = 2, z = 3. x, y, z = array(1) Est équivalent à x = 1 et les autres variables ne sont pas assignées.
|