CommencezCommencez gratuitement

Multidispatch

Le multidispatch est l'un des grands atouts de Julia. Il apporte souplesse et performance à vos programmes. Rappelez-vous que le multidispatch permet d'exécuter une méthode différente selon le type de l'argument passé à une fonction.

Dans l'exemple de la vidéo, on utilisait le multidispatch pour retourner une valeur différente selon que le type de l'argument était une chaîne de caractères ou non.

function add_values(x, y)
    x + y
end

function add_values(x::String, y::String)
    x * y
end

Cette activité fait partie du cours

Julia intermédiaire

Voir le cours

Instructions de l’exercice

  • Créez une fonction largest_value qui :
    • si l'entrée est de type String, utilisez map pour appliquer la fonction length à chaque argument (x, y, z).
    • si l'entrée est de type Bool, retournez simplement les arguments.
    • si l'entrée est d'un autre type, obtenez le maximum de toutes les valeurs avec maximum.
  • Supprimez les lignes commentées au bas (les cas de test) et assurez-vous que la logique tient la route!

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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"))
Modifier et exécuter le code