0Pricing
Kotlin Academy · Aula

Funções Infixas

Chamadas de função legíveis

Funções Infixas é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.

O que é uma função infixa

Uma função infixa pode ser chamada sem o ponto ou os parênteses: a func b. Marque-a com a palavra-chave infix.

infix fun Int.times2(factor: Int) = this * factor

fun main() {
    println(3 times2 4)
}

Regras para funções infixas

Uma função infixa deve ser uma função membro ou de extensão, receber exatamente um parâmetro, e esse parâmetro não pode ser variável nem ter um valor padrão.

infix fun Int.plusBy(other: Int) = this + other

fun main() {
    println(5 plusBy 7)
}

Funções infixas incorporadas

Muitas funções padrão são infixas: to (cria um par), and, or, shl e until, downTo, step para intervalos.

fun main() {
    val pair = "key" to 42
    println(pair)
    for (i in 1 until 4) print(i)
}

Criando um par com to

A conhecida sintaxe de mapa "a" to 1 é apenas a função infixa to retornando um par.

fun main() {
    val map = mapOf(1 to "one", 2 to "two")
    println(map[2])
}

Infixa como função membro

As funções infixas podem ser membros, permitindo escrever expressões fluentes do domínio.

class Money(val cents: Int) {
    infix fun add(o: Money) = Money(cents + o.cents)
}

fun main() {
    val total = Money(100) add Money(50)
    println(total.cents)
}

Priorize a legibilidade

As funções infixas se destacam quando a chamada parece uma frase. Escolha nomes semelhantes a verbos para que a name b flua naturalmente.

infix fun String.repeatedTimes(n: Int) = this.repeat(n)

fun main() {
    println("ab" repeatedTimes 3)
}

Precedência das chamadas infixas

As chamadas infixas têm precedência menor que a aritmética, mas maior que a comparação. Adicione parênteses ao combinar operações para manter a clareza.

infix fun Int.combine(o: Int) = this * 10 + o

fun main() {
    println(1 combine 2 + 3)
}

O receptor this

Em uma extensão infixa, this é o operando esquerdo; o parâmetro é o operando direito.

infix fun Int.minus2(o: Int) = this - o

fun main() {
    println(10 minus2 3)
}

Encadeando chamadas infixas

As chamadas infixas são associativas à esquerda, portanto você pode encadeá-las.

infix fun Int.then(o: Int) = this + o

fun main() {
    println(1 then 2 then 3)
}

Evite usar infixas em excesso

As funções infixas removem pontos e parênteses, o que pode prejudicar a clareza em operações não óbvias. Use-as somente quando a leitura realmente melhorar.

infix fun Int.power(exp: Int): Int {
    var r = 1
    repeat(exp) { r *= this }
    return r
}

fun main() {
    println(2 power 5)
}

Um exemplo fluente

As funções infixas podem fazer as asserções ou os construtores parecerem quase frases em português.

infix fun String.shouldStartWith(prefix: String) =
    this.startsWith(prefix)

fun main() {
    println("kotlin" shouldStartWith "kot")
}

Verificação rápida

Teste sua compreensão sobre funções infixas.

Recapitulação

Você aprendeu sobre funções infixas:

  • Marque-as com infix e chame-as como a func b.
  • Elas devem ser membros ou extensões com um parâmetro que não seja variável nem tenha valor padrão.
  • to, until e downTo são funções infixas incorporadas.
  • Use-as quando realmente melhorarem a legibilidade.
infix fun Int.add(o: Int) = this + o

fun main() {
    println(4 add 6)
}

Perguntas Frequentes

A aula “Funções Infixas” é grátis?

Sim — o texto completo de “Funções Infixas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.

O que vou aprender em “Funções Infixas”?

Chamadas de função legíveis Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kotlin Academy?

Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Funções Infixas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kotlin Academy?

Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Funções Infixas
  2. Construção de APIs Semelhantes a DSL
  3. Funções tailrec
  4. Quando Usar Cada Uma
← Voltar para Kotlin Academy