Začněte nyníZačněte zdarma

Multiple dispatch

Multiple dispatch je jednou z velkých předností Julie – přináší flexibilitu a rychlostní výhody tvým programům. Připomeň si, že multiple dispatch ti umožňuje spustit jinou metodu podle typu argumentu předaného do funkce.

Příklad z videa používal multiple dispatch k vrácení různých hodnot podle toho, zda byl argument typu string, nebo ne.

function add_values(x, y)
    x + y
end

function add_values(x::String, y::String)
    x * y
end

Toto cvičení je součástí kurzu

Intermediate Julia

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř funkci largest_value, která:
    • pokud je vstup typu String, použije map k namapování funkce length na každý argument (x, y, z).
    • pokud je vstup typu Bool, jednoduše vrátí argumenty.
    • pokud je vstup jakéhokoli jiného typu, vrátí maximum ze všech hodnot pomocí maximum.
  • Odstraň zakomentované řádky na konci (testovací případy) a ověř, že logika dává smysl!

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Create three functions to handle any input, String input, and Bool input
function largest_value(x, y, z)
  maximum((____, ____, ____))
end

function largest_value(x::____, y::____, z::____)
  map(length, (____, ____, ____))
end

function largest_value(x::____, y::____, z::____)
  x, y, z
end

# Un-comment this test case to test your function
#println(largest_value("12", "24", "36"))
Upravit a spustit kód