多重派發(multiple dispatch)
多重派發是 Julia 的一大優勢,能讓程式更有彈性且更快速。回想一下,多重派發會根據傳入函式的引數型別,選擇並執行不同的方法。
影片中的範例使用多重派發,根據引數型別是否為字串來回傳不同結果。
function add_values(x, y)
x + y
end
function add_values(x::String, y::String)
x * y
end
本練習屬於課程
Julia 中級
練習說明
- 建立函式
largest_value,其行為如下:- 若輸入為
String,使用map將length套用到各個引數(x, y, z)。 - 若輸入為
Bool,直接回傳這些引數。 - 若為其他任何型別,使用
maximum取得所有值的最大值。
- 若輸入為
- 移除底部的註解行(測試案例),並確認你的邏輯正確!
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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"))