typestar

Tipos paramétricos en Julia

La T entre llaves se elige por uso y se acota con <:.

# The T in curly braces is decided per use; constraints bound it.
struct Reading{T<:Real}
    label::String
    value::T
end

seeing = Reading("seeing", 2.3)
frames = Reading("frames", 48)
println(typeof(seeing))
println(typeof(frames))

# Parametric functions dispatch on the element type.
midpoint(xs::Vector{T}) where {T<:Real} = (first(xs) + last(xs)) / 2
println(midpoint([10.0, 14.0, 22.0]))
println(midpoint([3, 9]))

Cómo funciona

  1. Reading{T<:Real} estampa un tipo concreto por valor.
  2. typeof muestra Reading{Float64} y Reading{Int64}.
  3. where {T<:Real} escribe la misma idea sobre una función.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
415
Tokens
103
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 103 segundos.

Escribe este fragmento

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

← Anterior Siguiente →