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
infixe chame-as comoa 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,untiledownTosã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.