Motifs de tableau
Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 8 sur 78.
Un motif de tableau s’écrit comme un littéral de tableau. Il correspond à un tableau de même taille dont les éléments correspondent un à un. Chaque élément du motif peut être un littéral, _ ou une liaison :
var point := [0, 7]
match point:
[0, 0]:
print("Origin")
[0, var y]:
print("On the y-axis at ", y)
[var x, var y]:
print("Point ", x, ", ", y)On the y-axis at 7La taille doit être la même : [var x, var y] ne correspond pas à [1, 2, 3]. Placez .. comme dernier élément pour autoriser un nombre quelconque d’éléments supplémentaires (y compris zéro), et écrivez [] pour un tableau vide :
var cmd := ["give", "sword", "Ana"]
match cmd:
[]:
print("Nothing typed")
["give", var item, ..]:
print("Giving ", item)Giving swordLes gardes fonctionnent aussi avec les motifs de tableaux : [var a, var b] when a == b: correspond à deux éléments égaux.
Les motifs de tableau ne correspondent qu’au type Array. Le PackedStringArray renvoyé par split() ne leur correspond jamais. Stocke le résultat dans une variable déclarée comme Array, ce qui le convertit :
var words: Array = "go north".split(" ")
match words:
["go", var dir]:
print("Heading ", dir)Heading northDéfi
FacileLe programme lit un point écrit sous la forme x,y et le stocke dans le tableau point sous forme de deux entiers (déjà écrit). Utilise une instruction match avec des motifs de tableau pour afficher où se trouve le point, en appliquant la première règle qui correspond :
- Les deux valent
0:Origin xvaut0:On the y-axis at y=suivi deyyvaut0:On the x-axis at x=suivi dexxetysont égaux :On the diagonal atsuivi de la valeur- Tout autre cas :
Point at (x, y)avec les deux valeurs
Pour l’entrée 0,5, la sortie est :
On the y-axis at y=5Pour l’entrée 2,7, c’est :
Point at (2, 7)Essayez vous-même
extends Node
func _ready():
var parts := OS.read_string_from_stdin().split(",")
var point := [int(parts[0]), int(parts[1])]
# Faire correspondre point aux motifs de tableau
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et flux d’exécution
1Les chaînes de caractères en profondeur
Méthodes des chaînesRechercher dans les chaînesRemplacer et supprimer les espacesDécouper et joindreRécapitulatif - Vérifier un nom d’utilisateur4Dictionnaires, partie 2
Dictionnaires imbriquésTableaux de dictionnairesFusionner des dictionnairesCopier des dictionnairesRécapitulatif - Compteur de fréquence7Énumérations
Qu’est-ce qu’une énumération ?Définir une énumérationValeurs d’une énumérationÉnumérations avec matchRécapitulatif - Feu de circulation10Fonctions avancées
Renvoyer plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’un tableau imbriqué13Système de gestion des stocks
Présentation du projetAjouter un article2Prise de décision avancée
Correspondance avec des variablesGardes de correspondanceMotifs de tableauMotifs de dictionnaireVérifications d’appartenanceRécapitulatif – Analyseur de commandes5Application de carnet d’adresses
Afficher le menuAjouter un contact8Gestionnaire des dossiers étudiants
Aperçu du projetAjouter un étudiant3Tableaux multidimensionnels
Bases des tableaux 2DAccéder aux éléments d’un tableau 2DBoucles imbriquées avec des tableaux 2DRécapitulatif - Tableaux 2DTableaux irréguliersMotifs courants des tableaux 2DRécapitulatif - Plateau de jeu6Les ensembles avec les dictionnaires
Qu’est-ce qu’un ensemble ?Un dictionnaire comme ensembleAjouter et supprimerUnion et intersectionDifférence d’ensemblesRécapitulatif – Supprimer les doublons9Agrégation avancée de données
Additionner des valeursTrouver le minimum et le maximumTri personnaliséRécapitulatif - Trieur de dictionnairesEntraînez-vous par vous-même : Compilateur GDScript en ligne