typestar

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

  1. abstract type Instrument end no tiene campos, solo significado.
  2. Camera <: Instrument declara la relación de subtipo.
  3. Un método genérico cubre la familia; uno específico la sobreescribe.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Tipos; paso 17 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →