Valeurs par défaut
Fait partie de la section Fondamentaux du Journey Swift de Coddy. Leçon 57 sur 86.
Parfois, un paramètre possède une valeur qui est utilisée la plupart du temps. Au lieu d’obliger l’appelant à la fournir à 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") // Sortie : Hello, Alice!
greet(name: "Bob", greeting: "Hi") // Sortie : Hi, Bob!Lors de l’appel de la fonction, tu peux omettre les paramètres qui ont des valeurs par défaut. Swift utilisera automatiquement la valeur par défaut. Mais si tu as besoin d’une valeur différente, tu peux quand même 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 fonctions clairs et lisibles :
func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
return base + (base * taxRate)
}
print(calculatePrice(base: 100)) // Sortie : 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // Sortie : 120.0Les valeurs par défaut rendent vos fonctions plus flexibles. Elles fonctionnent simplement dans les cas courants tout en permettant une personnalisation lorsque cela est nécessaire.
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 facultatifs :
greetingdoit avoir pour valeur par défaut"Hello"repeatCountdoit avoir pour valeur par défaut1
Construisez une chaîne qui répète le modèle de salutation le nombre de fois indiqué, en les séparant par des espaces.
Paramètres :
name(String) : le nom de la personne (obligatoire)greeting(String) : le mot de salutation (par défaut :"Hello")repeatCount(Int) : le nombre de répétitions de la salutation (par défaut :1)
Renvoie : une chaîne contenant le modèle de salutation répété. Format : "[greeting], [name]!" répété repeatCount fois, avec un espace unique entre les répétitions (String)
Par exemple, si name vaut "Alice", que greeting vaut "Hi" et que repeatCount vaut 2, la fonction renvoie "Hi, Alice! Hi, Alice!".
Si elle est appelée uniquement avec name valant "Bob" (en utilisant les valeurs par défaut), elle renvoie "Hello, Bob!".
Essayez 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 dynamiqueEntraînez-vous par vous-même : Playground Swift