Multiple dispatch
Multiple dispatch is een van Julia’s grote voordelen. Het geeft je programma’s flexibiliteit en snelheid. Onthoud: met multiple dispatch kun je een andere methode uitvoeren op basis van het type van het argument dat aan een functie wordt doorgegeven.
In het voorbeeld in de video werd multiple dispatch gebruikt om een andere waarde terug te geven, afhankelijk van of het argumenttype een string was of niet.
function add_values(x, y)
x + y
end
function add_values(x::String, y::String)
x * y
end
Deze oefening maakt deel uit van de cursus
Julia voor gevorderden
Oefeninstructies
- Maak een functie
largest_valuedie:- als de invoer
Stringis,mapgebruikt om de functielengthtoe te passen op elk argument(x, y, z). - als de invoer
Boolis, simpelweg de argumenten teruggeeft. - als de invoer een ander type is, de maximumwaarde van alle waarden bepaalt met
maximum.
- als de invoer
- Verwijder de uitcommentaarde regels onderaan (de testcases) en zorg dat de logica klopt!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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"))