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
Instructions de l’exercice
- Créez une fonction
largest_valuequi :- si l'entrée est de type
String, utilisezmappour appliquer la fonctionlengthà 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.
- si l'entrée est de type
- 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"))