Tipos abstractos en Julia
Nombra la familia, despacha sobre ella, sobreescribe por tipo concreto.
# An abstract type names a family; methods dispatch on it.
abstract type Instrument end
struct Camera <: Instrument
megapixels::Int
end
struct Spectrograph <: Instrument
resolution::Int
end
# One generic fallback, one specific override.
setup(i::Instrument) = "generic checklist"
setup(c::Camera) = "cool sensor, $(c.megapixels) MP flat frames"
println(setup(Camera(62)))
println(setup(Spectrograph(1800)))
println(Camera <: Instrument)
Cómo funciona
abstract type Instrument endno tiene campos, solo significado.Camera <: Instrumentdeclara la relación de subtipo.- Un método genérico cubre la familia; uno específico la sobreescribe.
Palabras clave y builtins usados aquí
CameraInstrumentIntSpectrographabstractendstructtype
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 439
- Tokens
- 75
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 69 segundos.
Paso 2 de 3 en Tipos; paso 17 de 27 en Fundamentos del lenguaje.