Operadores e infix en Kotlin
Enseña + a un tipo nuevo, o deja una función entre sus operandos.
data class Load(val kg: Double) {
// operator fun teaches + a new operand pair.
operator fun plus(other: Load) = Load(kg + other.kg)
}
// infix lets a one-argument function sit between its operands.
infix fun String.leads(follower: String) = "$this walks ahead of $follower"
fun main() {
val total = Load(11.5) + Load(6.2)
println("Carrying ${total.kg} kg")
println("Rae" leads "Sam")
}
Cómo funciona
operator fun plushace compilarLoad(11.5) + Load(6.2).infix fun String.leadspermite"Rae" leads "Sam"— sin punto ni paréntesis.- Ambas son funciones comunes; las palabras clave solo desbloquean la sintaxis.
Palabras clave y builtins usados aquí
DoubleStringclassdatafuninfixoperatorval
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 388
- Tokens
- 89
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 82 segundos.
Paso 3 de 3 en Idiomas del lenguaje; paso 21 de 27 en Fundamentos del lenguaje.