Funciones infix
Llamadas de función legibles
Funciones infix es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.
¿Qué es una función infix?
Una función infix puede llamarse sin el punto ni los paréntesis: a func b. Márquela con la palabra clave infix.
infix fun Int.times2(factor: Int) = this * factor
fun main() {
println(3 times2 4)
}Reglas de infix
Una función infix debe ser una función miembro o de extensión, recibir exactamente un parámetro y dicho parámetro no puede ser vararg ni tener un valor predeterminado.
infix fun Int.plusBy(other: Int) = this + other
fun main() {
println(5 plusBy 7)
}Funciones infix integradas
Muchas funciones estándar son infix: to (crea un Pair), and, or, shl y until, downTo, step para rangos.
fun main() {
val pair = "key" to 42
println(pair)
for (i in 1 until 4) print(i)
}Crear un Pair con to
La conocida sintaxis de mapas "a" to 1 no es más que la función infix to, que devuelve un Pair.
fun main() {
val map = mapOf(1 to "one", 2 to "two")
println(map[2])
}Infix como función miembro
Las funciones infix pueden ser miembros, lo que permite escribir expresiones de dominio fluidas.
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)
}La legibilidad es lo primero
Infix resulta especialmente útil cuando la llamada se lee como una oración. Elija nombres similares a verbos para que a name b fluya de forma natural.
infix fun String.repeatedTimes(n: Int) = this.repeat(n)
fun main() {
println("ab" repeatedTimes 3)
}Precedencia de las llamadas infix
Las llamadas infix tienen menor precedencia que la aritmética, pero mayor que las comparaciones. Añada paréntesis al combinarlas para mantener la claridad.
infix fun Int.combine(o: Int) = this * 10 + o
fun main() {
println(1 combine 2 + 3)
}El receptor this
En una extensión infix, this es el operando izquierdo y el parámetro es el operando derecho.
infix fun Int.minus2(o: Int) = this - o
fun main() {
println(10 minus2 3)
}Encadenar llamadas infix
Las llamadas infix son asociativas por la izquierda, por lo que puede encadenarlas.
infix fun Int.then(o: Int) = this + o
fun main() {
println(1 then 2 then 3)
}Evite abusar de infix
Infix elimina puntos y paréntesis, lo que puede reducir la claridad en operaciones que no sean obvias. Úselo solo cuando la lectura mejore.
infix fun Int.power(exp: Int): Int {
var r = 1
repeat(exp) { r *= this }
return r
}
fun main() {
println(2 power 5)
}Un ejemplo fluido
Infix puede hacer que las aserciones o los builders se lean casi como inglés.
infix fun String.shouldStartWith(prefix: String) =
this.startsWith(prefix)
fun main() {
println("kotlin" shouldStartWith "kot")
}Comprobación rápida
Compruebe su comprensión de las funciones infix.
Resumen
Ha aprendido sobre las funciones infix:
- Márquelas con
infixy llámelas comoa func b. - Deben ser miembros o extensiones con un parámetro que no sea vararg ni tenga un valor predeterminado.
to,untilydownToson funciones infix integradas.- Úselas cuando mejoren realmente la legibilidad.
infix fun Int.add(o: Int) = this + o
fun main() {
println(4 add 6)
}Preguntas frecuentes
¿La lección «Funciones infix» es gratis?
Sí — el texto completo de «Funciones infix» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Funciones infix»?
Llamadas de función legibles Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Kotlin Academy?
No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Funciones infix»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?
Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.