typestar

Despacho múltiple en Julia

Un nombre de función; el método se elige por el tipo de cada argumento.

# One function name, one method per argument signature: dispatch
# picks by the types of every argument, not just the first.
describe(m::Real) = "magnitude $m"
describe(name::String) = "target $name"
describe(name::String, m::Real) = "$name at magnitude $m"

println(describe(4.2))
println(describe("Altair"))
println(describe("Altair", 0.76))

# methods() shows the table dispatch chooses from.
println(length(methods(describe)), " methods defined")

Cómo funciona

  1. Tres métodos describe difieren solo en las firmas.
  2. Las llamadas rutean por tipo: un Real, un String, o el par.
  3. methods(describe) lista la tabla de la que el despacho elige.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
450
Tokens
82
Ritmo de tres estrellas
70 tpm

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

Escribe este fragmento

Paso 2 de 3 en Funciones; paso 8 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →