LoslegenKostenlos loslegen

Multiple Dispatch

Multiple Dispatch ist einer von Julias großen Vorteilen und bringt deinen Programmen Flexibilität und Geschwindigkeit. Denk daran: Multiple Dispatch erlaubt es, je nach Typ des an eine Funktion übergebenen Arguments eine andere Methode auszuführen.

Im Video-Beispiel wurde Multiple Dispatch genutzt, um je nach Argumenttyp einen anderen Wert zurückzugeben — abhängig davon, ob der Typ eine Zeichenkette ist oder nicht.

function add_values(x, y)
    x + y
end

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

Diese Übung ist Teil des Kurses

Julia: Aufbaukurs

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine Funktion largest_value, die Folgendes tut:
    • wenn die Eingabe String ist, verwende map, um die Funktion length auf jedes Argument (x, y, z) abzubilden.
    • wenn die Eingabe Bool ist, gib einfach die Argumente zurück.
    • wenn die Eingabe ein anderer Typ ist, ermittle das Maximum aller Werte mit maximum.
  • Entferne die auskommentierten Zeilen am Ende (die Testfälle) und stelle sicher, dass die Logik stimmig ist!

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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"))
Code bearbeiten und ausführen