Chamada de função Kotlin usando notação Infix

Neste artigo, você aprenderá a usar a notação de infixo para chamar uma função em Kotlin (com a ajuda de exemplos).

Antes de aprender como criar uma função com notação de infixo, vamos explorar duas funções de infixo comumente usadas.

Quando você usa as operações ||e &&, o compilador procura pelas funções ou e e, respectivamente, e as chama nos bastidores.

Essas duas funções suportam notação infixa.

Exemplo: Kotlin ou & e função

 fun main(args: Array) ( 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") )

Quando você executa o programa, a saída será:

 resultado = verdadeiro resultado = falso

No programa acima, em a or bvez de a.or(b)e em a and bvez de a.and(b)é usado. Isso foi possível porque essas duas funções suportam notação infixa.

Como criar uma função com notação infixa?

Você pode fazer uma chamada de função em Kotlin usando notação infixa se a função

  • é uma função de membro (ou uma função de extensão).
  • tem apenas um único parâmetro.
  • está marcado com a infixpalavra - chave.

Exemplo: função definida pelo usuário com notação infix

 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) ( val p = Structure() p createPyramid 4 // p.createPyramid(4) )

Quando você executa o programa, a saída será:

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

Aqui, createPyramid()está uma função infixa que cria uma estrutura de pirâmide. É uma função de membro de classe Structure, leva apenas um parâmetro de tipo Inte começa com palavra-chave infix.

O número de linhas da pirâmide depende do argumento passado para a função.

Artigos interessantes...