Multiples dispatchs
Le multiple dispatch est l’un des grands atouts de Julia. Il apporte flexibilité et performances à vos programmes. Rappelez-vous : le multiple dispatch permet d’exécuter une méthode différente selon le type de l’argument passé à une fonction.
L’exemple de la vidéo utilisait le multiple dispatch pour renvoyer 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
Cet exercice fait partie du cours
Julia intermédiaire
Instructions
- Créez une fonction
largest_valuequi :- si l’entrée est de type
String, utilisemappour appliquer la fonctionlengthà chaque argument(x, y, z). - si l’entrée est de type
Bool, renvoie simplement les arguments. - si l’entrée est d’un autre type, calcule la valeur maximale de tous les éléments avec
maximum.
- si l’entrée est de type
- Supprimez les lignes commentées en bas (les cas de test) et vérifiez que la logique est cohérente !
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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"))