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

Fonction infix en Kotlin

Dans cet article, vous apprendrez à appeler une fonction avec le symbole infix en Kotlin (à l'aide d'exemples).

Avant d'apprendre à créer des fonctions avec un opérateur infix, étudions d'abord deux fonctions infix couramment utilisées.

Lorsque vous utilisez || et &&& opérations, le compilateur recherche les fonctions or et and respectivement, et les appelle en arrière-plan.

Ces deux fonctions supportent la notation infixe.

Exemple : fonctions or & and en Kotlin

fun main(args: Array<String>) {
    val a = true
    val b = false
    var result: Boolean
    result = a or b // a.or(b)
    println("result = $result")
    result = a and b // a.and(b)
    println("result = $result")
}

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

result = true
result = false

Dans le programme ci-dessus, utilisez a or b à la place de a.or(b), et utilisez a and b à la place de a.and(b). C'est autorisé, car ces deux fonctions supportent la notation infixe.

Comment créer une fonction avec un opérateur infix ?

Vous pouvez utiliser la notation infixe pour appeler une fonction en Kotlin, si la fonction

  • estFonction membreouFonction d'extension)

  • Il n'y a qu'un seul paramètre.

  • marquée de la clé infix.

Exemple : fonction définie par l'utilisateur, avec notation infixe

class Structure() {
    infix fun createPyramid(rows: Int) {
        var k = 0
        for (i in 1..rows) {
            k = 0
            for (space in 1..rows-i) {
                print("  ")
            }
            while (k != 2*i-1) {
                print("* )
                ++k
            }
            println()
        }
    }
}
fun main(args: Array<String>) {
    val p = Structure()
    p createPyramid 4       // p.createPyramid(4)
}

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

      * 
    * * * 
  * * * * * 
* * * * * * *

Ici, createPyramid() est une fonction infixe créant la structure de la pyramide. C'est une fonction membre de la classe Structure, qui accepte un seul paramètre de type Int et commence par le mot-clé infix.

Le nombre de rangées de la pyramide dépend du paramètre passé à la fonction.