Valeurs d’une énumération
Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 39 sur 78.
Chaque option d’énumération est un int, vous pouvez donc comparer les options et effectuer des calculs avec elles :
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
print(Day.FRIDAY) # 4
print(Day.SATURDAY > Day.FRIDAY) # true
print(Day.FRIDAY + 1) # 5L’énumération elle-même fonctionne comme un dictionnaire associant des noms à des valeurs. keys() renvoie les noms dans l’ordre, values() les valeurs, et size() le nombre d’options :
print(Day.keys()) # ["MONDAY", "TUESDAY", ..., "SUNDAY"]
print(Day.size()) # 7Pour afficher le nom d’une valeur, indexez keys() avec celle-ci. Cela fonctionne lorsque les options ont les valeurs par défaut 0, 1, 2... Pour une énumération avec des valeurs choisies, utilisez find_key(), qui renvoie le nom d’une valeur :
var today := Day.SATURDAY
print(Day.keys()[today]) # SATURDAYAvec enum Coin { COPPER = 1, SILVER = 10 } au niveau supérieur, Coin.keys()[10] est hors limites, tandis que find_key() fonctionne :
print(Coin.find_key(10)) # SILVERPour faire l’inverse, passer d’un nom stocké sous forme de texte à sa valeur, utilise des crochets. Vérifie d’abord le nom avec has() : un nom qui ne figure pas dans l’énumération provoque une erreur.
var text := "FRIDAY"
if Day.has(text):
print(Day[text]) # 4for day_name in Day: parcourt les noms, comme une boucle sur un dictionnaire.
Défi
FacileLe script déclare l’énumération Day, de MONDAY à SUNDAY. Le programme lit deux lignes : le nom d’un jour en majuscules et un nombre de jours (un nombre entier, 0 ou plus).
Affiche deux lignes :
- Le nom,
has the valueet la valeur de ce jour dans l’énumération In, le nombre,days:et le nom du jour correspondant à ce nombre de jours plus tard
Après SUNDAY, la semaine recommence à MONDAY. Pour les entrées FRIDAY et 3, la sortie est :
FRIDAY has the value 4
In 3 days: MONDAYEssayez vous-même
extends Node
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
func _ready():
var day_name := OS.read_string_from_stdin()
var days := int(OS.read_string_from_stdin())
# Affiche la valeur du jour et celle du jour obtenu après ce nombre de jours
pass
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