Wielokrotne dopasowanie (multiple dispatch)
Wielokrotne dopasowanie (multiple dispatch) to jedna z największych zalet Julii – zapewnia elastyczność i zwiększa wydajność programów. Przypomnijmy: multiple dispatch pozwala uruchomić inną metodę w zależności od typu argumentu przekazanego do funkcji.
Przykład z lekcji wideo używał multiple dispatch, aby zwrócić inną wartość w zależności od tego, czy argument był typu string.
function add_values(x, y)
x + y
end
function add_values(x::String, y::String)
x * y
end
To ćwiczenie jest częścią kursu
Julia średnio zaawansowana
Instrukcje do ćwiczenia
- Utwórz funkcję
largest_value, która:- jeśli dane wejściowe są typu
String, użyjemapdo zastosowania funkcjilengthna każdym argumencie(x, y, z). - jeśli dane wejściowe są typu
Bool, po prostu zwróci argumenty. - jeśli dane wejściowe są dowolnego innego typu, znajdzie maksymalną wartość spośród wszystkich argumentów za pomocą
maximum.
- jeśli dane wejściowe są typu
- Usuń zakomentowane wiersze na dole (przypadki testowe) i upewnij się, że logika jest poprawna!
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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"))