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
object TrailRegistrydeclara e instancia de un solo aliento.- Un
companion objectguarda lo que otros lenguajes llaman miembros estáticos. private constructormásPermit.issuecanaliza la creación por una fábrica.
Palabras clave y builtins usados aquí
IntStringclasscompanionconstconstructorfuninobjectprivateval
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.
Paso 3 de 3 en Clases y objetos; paso 15 de 27 en Fundamentos del lenguaje.