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 b
vez de a.or(b)
e em a and b
vez 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
infix
palavra - 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 Int
e começa com palavra-chave infix
.
O número de linhas da pirâmide depende do argumento passado para a função.