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
Pokyny k cvičení
- Vytvoř funkci
largest_value, která:- pokud je vstup typu
String, použijemapk namapování funkcelengthna 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.
- pokud je vstup typu
- 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"))