typestar

Objects y companions en Kotlin

Singletons con object, estáticos con companion object.

// object declares a singleton; companion members ride on the class.
object TrailRegistry {
    private val open = mutableSetOf("Ridgeline", "Lakeshore")
    fun isOpen(name: String) = name in open
}

class Permit private constructor(val id: Int) {
    companion object {
        const val PREFIX = "KTL"
        fun issue(n: Int) = Permit(n)
    }
}

fun main() {
    println(TrailRegistry.isOpen("Lakeshore"))
    val permit = Permit.issue(207)
    println("${Permit.PREFIX}-${permit.id}")
}

Cómo funciona

  1. object TrailRegistry declara e instancia de un solo aliento.
  2. Un companion object guarda lo que otros lenguajes llaman miembros estáticos.
  3. private constructor más Permit.issue canaliza la creación por una fábrica.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
449
Tokens
109
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 101 segundos.

Escribe este fragmento

Paso 3 de 3 en Clases y objetos; paso 15 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →