Valeurs par défaut
Fait partie de la section Fondamentaux du Journey Swift de Coddy — leçon 57 sur 86.
Parfois, un paramètre a une valeur qui est utilisée la plupart du temps. Au lieu d'exiger que l'appelant la fournisse à chaque fois, vous pouvez attribuer une valeur par défaut à ce paramètre.
Pour définir une valeur par défaut, utilisez l'opérateur d'affectation (=) après le type du paramètre :
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // Résultat : Hello, Alice!
greet(name: "Bob", greeting: "Hi") // Résultat : Hi, Bob!Lors de l'appel de la fonction, vous pouvez omettre les paramètres qui ont des valeurs par défaut. Swift utilisera automatiquement la valeur par défaut. Mais si vous avez besoin d'une valeur différente, vous pouvez toujours en fournir une explicitement.
Les paramètres avec des valeurs par défaut doivent être placés à la fin de la liste des paramètres. Cela permet de garder les appels de fonction clairs et lisibles :
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // Résultat : 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // Résultat : 120.0Les valeurs par défaut rendent vos fonctions plus flexibles — elles fonctionnent simplement pour les cas courants tout en permettant une personnalisation en cas de besoin.
Défi
FacileÉcrivez une fonction formatGreeting qui prend name, greeting et repeatCount et renvoie un message de salutation formaté.
La fonction doit utiliser des valeurs par défaut pour les paramètres optionnels :
greetingdoit avoir pour valeur par défaut"Hello"repeatCountdoit avoir pour valeur par défaut1
Construisez une chaîne qui répète le motif de salutation le nombre de fois spécifié, séparé par des espaces.
Paramètres :
name(String) : Le nom de la personne (requis)greeting(String) : Le mot de salutation (par défaut :"Hello")repeatCount(Int) : Le nombre de fois qu'il faut répéter la salutation (par défaut :1)
Retourne : Une chaîne avec le motif de salutation répété. Format : "[greeting], [name]!" répété repeatCount fois, séparé par un seul espace (String)
Par exemple, si name est "Alice", greeting est "Hi" et repeatCount est 2, la fonction renvoie "Hi, Alice! Hi, Alice!".
Si elle est appelée avec seulement name valant "Bob" (en utilisant les valeurs par défaut), elle renvoie "Hello, Bob!".
Aide-mémoire
Pour définir une valeur par défaut pour un paramètre, utilisez l'opérateur d'affectation (=) après le type du paramètre :
func greet(name: String, greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet(name: "Alice") // Résultat : Hello, Alice!
greet(name: "Bob", greeting: "Hi") // Résultat : Hi, Bob!Lors de l'appel d'une fonction, vous pouvez omettre les paramètres qui ont des valeurs par défaut. Swift utilisera automatiquement la valeur par défaut, mais vous pouvez toujours fournir une valeur différente explicitement si nécessaire.
Les paramètres avec des valeurs par défaut doivent être placés à la fin de la liste des paramètres :
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // Résultat : 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // Résultat : 120.0Essayez vous-même
func formatGreeting(name: String, greeting: String, repeatCount: Int) -> String {
// É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 composéeRécapitulatif - Mathématiques simplesOpérateurs de comparaison7Entrées/Sorties de base
Fonction PrintInterpolation de chaînesSaisie ReadLineConversion de typesRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourÉtiquettes d'argumentRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs par défaut13Itération sur les séquences
Itérer sur les élémentsLa méthode d'énumérationItérer sur les chaînes P1Itérer sur les chaînes P22Variables
Let vs VarAnnotations de typeNombresStringsBooléensConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateur ternaire8Calculateur de partage de facture
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz3Les Optionnels
Comprendre les optionnelsDéballage avec If LetL'instruction Guard LetOpérateur de fusion nilRécapitulatif - Déballage sécurisé6Prise de décision
L'instruction IfIf - ElseRécapitulatif - Calculatrice simpleL'instruction SwitchSwitch avec des intervalles9Boucles
Boucle For-InBoucle WhileBoucle Repeat-WhileBreakContinueRécapitulatif - FactorielleIntervalles dans les bouclesBoucles imbriquéesRécapitulatif - Entrée dynamique