Çoklu gönderim (multiple dispatch)
Multiple dispatch, Julia'nın önemli avantajlarından biridir ve Julia programlarına esneklik ve hız kazandırır. Unutma, multiple dispatch bir fonksiyona geçirilen argümanın türüne göre farklı bir yöntemin çalışmasına olanak tanır.
Videodaki örnek, argüman türünün string olup olmamasına göre farklı bir değer döndürmek için multiple dispatch kullanıyordu.
function add_values(x, y)
x + y
end
function add_values(x::String, y::String)
x * y
end
Bu egzersiz, kursun bir parçasıdır
Orta Düzey Julia
Egzersiz talimatları
largest_valueadlı bir fonksiyon oluştur. Bu fonksiyon:- girdi
Stringise,lengthfonksiyonunu her argümana(x, y, z)uygulamak içinmapkullansın. - girdi
Boolise, argümanları aynen döndürsün. - girdi başka türden ise, tüm değerlerin maksimumunu
maximumile alsın.
- girdi
- Alttaki (test örnekleri olan) yorum satırlarını kaldır ve mantığın doğru çalıştığından emin ol!
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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"))