Kom igångKom igång gratis

Multipel dispatch

Multipel dispatch är en av Julias stora fördelar och ger dina program både flexibilitet och snabbhet. Kom ihåg att multipel dispatch låter dig köra olika metoder beroende på typen av det argument som skickas in i en funktion.

Exemplet i videon använde multipel dispatch för att returnera olika värden beroende på om argumenttypen var en sträng eller inte.

function add_values(x, y)
    x + y
end

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

Den här övningen är en del av kursen

Julia för medelnivå

Visa kurs

Övningsinstruktioner

  • Skapa en funktion largest_value som:
    • om indata är av typen String, använder map för att applicera funktionen length på varje argument (x, y, z).
    • om indata är av typen Bool, helt enkelt returnerar argumenten.
    • om indata är av någon annan typ, hämtar det maximala värdet av alla värden med hjälp av maximum.
  • Ta bort de utkommenterade raderna längst ned (testfallen) och kontrollera att logiken stämmer!

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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"))
Redigera och kör kod