Multiple dispatch
Il multiple dispatch è uno dei grandi vantaggi di Julia: offre flessibilità e velocità ai tuoi programmi. Ricorda, il multiple dispatch consente di eseguire un metodo diverso in base al tipo dell’argomento passato a una funzione.
Nell’esempio del video, il multiple dispatch veniva usato per restituire un valore diverso a seconda che il tipo dell’argomento fosse una stringa oppure no.
function add_values(x, y)
x + y
end
function add_values(x::String, y::String)
x * y
end
Questo esercizio fa parte del corso
Julia intermedio
Istruzioni dell'esercizio
- Crea una funzione
largest_valueche:- se l’input è
String, usamapper applicare la funzionelengtha ciascun argomento(x, y, z). - se l’input è
Bool, restituisce semplicemente gli argomenti. - se l’input è di qualsiasi altro tipo, ottieni il massimo di tutti i valori usando
maximum.
- se l’input è
- Rimuovi le righe commentate in fondo (i test case) e assicurati che la logica sia corretta!
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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"))