English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Paramètres par défaut et nommés en Kotlin

Dans cet article, vous découvrirez les paramètres par défaut et nommés à l'aide d'exemples.

Paramètres par défaut Kotlin

Dans Kotlin, vous pouvez définir des valeurs par défaut pour les paramètres dans la définition de la fonction.

Si la fonction est appelée en transmettant des paramètres, ces paramètres sont utilisés comme paramètres. Cependant, si la fonction est appelée sans transmettre de paramètres, les paramètres par défaut sont utilisés.

Comment fonctionnent les paramètres par défaut ?

Première : transmission de tous les paramètres

La fonction foo() a deux paramètres. Les paramètres fournissent des valeurs par défaut. Cependant, foo() est appelé avec deux paramètres dans le programme ci-dessus. Par conséquent, les paramètres par défaut ne sont pas utilisés.

Dans la fonction foo(), les valeurs de letter et number sont respectivement 'x' et 2.

Deuxième : non transmission de tous les paramètres, mais transmission d'un seul paramètre

Dans cet exemple, un seul paramètre (le premier) est transmis à la fonction foo(). Par conséquent, le premier paramètre utilise la valeur transmise à la fonction. Cependant, le second paramètre number utilise la valeur par défaut, car le second paramètre n'a pas été transmis pendant l'appel de la fonction.

Dans la fonction foo(), les valeurs de letter et number sont respectivement 'y' et 15.

Troisième : non transmission de tous les paramètres

Dans cet exemple, nous appelons la fonction foo() sans transmettre de paramètres. Par conséquent, ces deux paramètres utilisent leurs valeurs par défaut.

Dans la fonction foo(), les valeurs de letter et number sont respectivement 'a' et 15.

Exemple : paramètres par défaut Kotlin

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    println("Sortie lors de la non-transmission de paramètres :")
    displayBorder()
    println("\n\n"*' En tant que premier paramètre.")
    println("Sortie lors de la transmission du premier paramètre :")
    displayBorder('*)
    println("\n\n"*' En tant que premier paramètre.")
    println("5En tant que second paramètre.")
    println("Sortie lors de la transmission de deux paramètres en même temps :")
    displayBorder('* 5)
}

Lorsque le programme est exécuté, la sortie est :

Sortie lors de la non-transmission de paramètres :
===============
*' En tant que premier paramètre.
Sortie lors de la transmission du premier paramètre :
***************
*' En tant que premier paramètre.
5En tant que second paramètre.
Sortie lors de la transmission de deux paramètres en même temps :
*****

Exemple : paramètres nommés Kotlin

Avant de discuter des paramètres nommés, considérons quelques modifications à faire au code ci-dessus :

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    displayBorder(5)
}

Dans cet exemple, nous essayons de passer le second paramètre à la fonction displayBorder() et d'utiliser un paramètre par défaut pour le premier paramètre. Cependant, ce code donnera une erreur d'utilisation. Cela est dû au fait que le compilateur pense que nous essayons de fournir pour le caractère (type Char)5(valeur Int).

Pour résoudre ce problème, vous pouvez utiliser les paramètres nommés. Voici comment faire :

Exemple : paramètres nommés Kotlin

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    displayBorder(length = 5)
}

Lorsque le programme est exécuté, la sortie est :

=====

Dans le programme ci-dessus, nous utilisons des arguments nommés (length = 5)pour spécifier que la valeur de ce paramètre dans la définition de la fonction length doit être utilisée (indépendamment de la position des arguments réels).

L'argument de premier paramètre utilise la valeur par défaut du programme '='.