Fonctions à expression unique
Fait partie de la section Fondamentaux du Journey Kotlin de Coddy. Leçon 60 sur 93.
Lorsqu’une fonction ne contient qu’une seule expression, Kotlin propose une syntaxe plus concise. Au lieu d’utiliser des accolades et le mot-clé return, vous pouvez utiliser un signe égal suivi directement de l’expression.
Voici une fonction ordinaire comparée à son équivalent à expression unique :
// Fonction régulière
fun double(n: Int): Int {
return n * 2
}
// Fonction à expression unique
fun double(n: Int): Int = n * 2Les deux versions fonctionnent de manière identique, mais la seconde est plus courte et plus facile à lire pour les opérations simples.
Kotlin peut même déduire le type de retour des fonctions à expression unique, ce qui vous permet de l’omettre entièrement :
fun double(n: Int) = n * 2
fun greet(name: String) = "Hello, $name!"Cette syntaxe fonctionne également à merveille avec les expressions conditionnelles :
fun max(a: Int, b: Int) = if (a > b) a else b
fun isEven(n: Int) = n % 2 == 0Les fonctions à expression unique sont idéales pour les calculs, les validations et les transformations simples. Elles permettent de garder votre code propre et centré sur ce que fait la fonction plutôt que sur les mécanismes de renvoi d’une valeur.
Défi
MoyenÉcris une fonction calculateDiscount qui prend price et percentage et renvoie le prix remisé.
Utilise la syntaxe de fonction à expression unique (avec = au lieu des accolades et de return) pour calculer le prix final après application de la remise.
Le prix remisé est calculé comme suit : price - (price * percentage / 100)
Paramètres :
price(Double) : Le prix d’originepercentage(Int) : Le pourcentage de remise (0-100)
Renvoie : Le prix après application de la remise (Double)
Essayez vous-même
fun calculateDiscount(price: Double, percentage: Int): Double {
// Écrivez le code ici
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloAffectation augmentéeOpérateurs de comparaisonRécapitulatif - Mathématiques simples7E/S de base
Fonction PrintlnModèles de chaînesEntrée ReadLineConversion de typeRécapitulatif - Années avant la retraiteRécapitulatif - Vrai ou faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourArguments nommésValeurs par défautFonctions à expression uniqueRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validation2Variables
Val ou VarInférence de typeNombresChaîne de caractèresBooléenConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Opérateurs logiques, partie 3Ternaire avec une expression ifRécapitulatif - Logique simple8Calculateur de partage d’addition
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Aperçu du jeuLa fonction FizzBuzz3Nullabilité
Qu’est-ce que la sécurité vis-à-vis de nullTypes nullableOpérateur d’appel sécuriséOpérateur ElvisBases des défis de fonctionsAssertion de non-nullitéRécapitulatif - Accès sécurisé6Prise de décision
Instruction IfIf - ElseIf comme expressionExpression WhenWhen avec des plagesRécapitulatif - Calculatrice simple9Boucles
Boucle ForBoucle WhileBoucle Do-WhileBreakContinuePlages dans les bouclesBoucle imbriquéeRécapitulatif - FactorielleRécapitulatif - Entrée dynamiqueEntraînez-vous par vous-même : Playground Kotlin