開始使用免費開始

多重派發(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,使用 maplength 套用到各個引數 (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"))
編輯並執行程式碼