IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una funzione largest_value che:
    • se l’input è String, usa map per applicare la funzione length a 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.
  • 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"))
Modifica ed esegui il codice