typestar

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

  1. operator fun plus hace compilar Load(11.5) + Load(6.2).
  2. infix fun String.leads permite "Rae" leads "Sam" — sin punto ni paréntesis.
  3. Ambas son funciones comunes; las palabras clave solo desbloquean la sintaxis.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 3 en Idiomas del lenguaje; paso 21 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →