Appel de fonction Kotlin Infix

Avant d’apprendre à créer une fonction ayant une notation infixe, explorons deux fonctions infixes couramment utilisées.

Lorsque vous utilisez || et && opérations, le compilateur recherche respectivement ou et et fonctions, et les appelle sous le capot.

Ces deux fonctions prennent en charge la notation infixe.


Example: Kotlin or & and function

 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 vous exécutez le programme, la sortie sera:

résultat = vrai
résultat = faux

Dans le programme ci-dessus, a or b au lieu de a.or(b) , et a and b au lieu de a.and(b) est utilisé. Cela a été possible car ces deux fonctions prennent en charge la notation infixe.


Comment créer une fonction avec la notation infixe?

Vous pouvez effectuer un appel de fonction dans Kotlin en utilisant la notation infixe si la fonction

  • est unfonction membre(ou unfonction d’extension).
  • n’a qu’un seul paramètre.
  • est marqué par infix mot-clé.

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 vous exécutez le programme, la sortie sera:

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

Ici, createPyramid() est une fonction d’infixe qui crée une structure pyramidale. C’est une fonction membre de la classe Structure , prend un seul paramètre de type Int , et commence par le mot-clé infix