Multipel dispatch
Multipel dispatch är en av Julias stora fördelar och ger dina program både flexibilitet och snabbhet. Kom ihåg att multipel dispatch låter dig köra olika metoder beroende på typen av det argument som skickas in i en funktion.
Exemplet i videon använde multipel dispatch för att returnera olika värden beroende på om argumenttypen var en sträng eller inte.
function add_values(x, y)
x + y
end
function add_values(x::String, y::String)
x * y
end
Den här övningen är en del av kursen
Julia för medelnivå
Övningsinstruktioner
- Skapa en funktion
largest_valuesom:- om indata är av typen
String, användermapför att applicera funktionenlengthpå varje argument(x, y, z). - om indata är av typen
Bool, helt enkelt returnerar argumenten. - om indata är av någon annan typ, hämtar det maximala värdet av alla värden med hjälp av
maximum.
- om indata är av typen
- Ta bort de utkommenterade raderna längst ned (testfallen) och kontrollera att logiken stämmer!
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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"))