CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Créez une fonction largest_value qui :
    • si l’entrée est de type String, utilise map pour appliquer la fonction length à 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.
  • 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"))
Modifier et exécuter le code