Ajouter et supprimer
Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 33 sur 78.
Pour ajouter un membre, affectez true à sa clé. Ajouter un membre qui se trouve déjà dans l’ensemble ne change rien. Donc, si vous avez besoin de savoir s’il est nouveau, vérifiez d’abord avec has() :
var inventory := {"rope": true}
if inventory.has("torch"):
print("Already have torch")
else:
inventory["torch"] = true
print("Added torch")Pour supprimer un membre, appelle erase(). Cette méthode renvoie true si le membre a été supprimé et false s’il ne faisait pas partie de l’ensemble. L’absence d’un membre n’est jamais une erreur :
print(inventory.erase("rope")) # true
print(inventory.erase("map")) # false
print(inventory) # { "torch": true }Comme erase() renvoie une valeur booléenne, tu peux l’utiliser directement comme condition : if inventory.erase("map"): exécute son bloc uniquement lorsque "map" était un membre.
clear() supprime tous les éléments, size() les compte et is_empty() vaut true pour un ensemble qui ne contient aucun élément.
Défi
FacileLe programme lit des commandes, une par ligne, jusqu’à la ligne done. Chaque commande est add ITEM ou remove ITEM. Le code de départ sépare déjà chaque commande en action et item.
- Pour
add: si l’élément est nouveau, ajoute-le à l’ensembleinventoryet afficheAdded ITEM. Sinon, afficheAlready have ITEM. - Pour
remove: si l’élément se trouve dans l’ensemble, supprime-le et afficheRemoved ITEM. Sinon, afficheNo ITEM to remove.
Après done, affiche Inventory: suivi des éléments joints avec , , ou Inventory: empty si l’ensemble est vide. Pour l’entrée :
add torch
add rope
add torch
remove map
remove rope
donela sortie est :
Added torch
Added rope
Already have torch
No map to remove
Removed rope
Inventory: torchEssayez vous-même
extends Node
func _ready():
var inventory := {}
while true:
var command := OS.read_string_from_stdin()
if command == "done":
break
var parts := command.split(" ")
var action := parts[0]
var item := parts[1]
# Ajoute ou retire l’objet
# Affiche l’inventaire
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