Fonctions lambda, partie 1
Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 54 sur 78.
Une lambda est une fonction sans nom, écrite sous forme de valeur. Tu peux la stocker dans une variable comme un nombre ou une chaîne de caractères :
var add = func(a, b): return a + bElle commence par func, les paramètres et deux-points, comme toute fonction, mais elle n’a pas de nom. Un corps composé d’une seule instruction peut rester sur la même ligne.
Pour exécuter une lambda stockée dans une variable, appelez sa méthode call() avec les arguments :
print(add.call(5, 3))8add(5, 3) ne fonctionne pas : GDScript cherche une fonction nommée add dans le script et signale Function "add()" not found avant l’exécution du programme.
Une lambda plus longue comporte un bloc indenté. Comme toute fonction, elle a besoin de return pour renvoyer une valeur :
var greet = func(player_name):
var message = "Hello, " + player_name
return message + "!"
print(greet.call("Ana"))Hello, Ana!Une lambda sans return renvoie null, donc func(n): n * 2 calcule la valeur et la jette.
Les paramètres et le résultat peuvent avoir des types : func(n: int) -> int: return n * 2. La valeur d’une lambda est un Callable, le type GDScript pour « quelque chose que tu peux appeler ».
Défi
FacileLe programme lit trois nombres entiers, a, b et c.
- Crée une lambda avec trois paramètres,
x,yetz, qui renvoie leur produit, et stocke-la dans une variable nomméemultiply. - Appelle-la avec
a,betcet affiche le résultat.
Pour les entrées 2, 3 et 4, la sortie est :
24Essayez vous-même
extends Node
func _ready():
var a := int(OS.read_string_from_stdin())
var b := int(OS.read_string_from_stdin())
var c := int(OS.read_string_from_stdin())
# Crée la fonction lambda multiply ici
# Appelle multiply avec a, b et c, et affiche le résultat
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