複数ディスパッチ
複数ディスパッチはJuliaの大きな強みの1つで、プログラムに柔軟性と高速性をもたらします。複数ディスパッチでは、関数に渡された引数の型に応じて異なるメソッドを実行できることを思い出してください。
ビデオの例では、引数の型が文字列かどうかに応じて異なる値を返すために、複数ディスパッチを使っていました。
function add_values(x, y)
x + y
end
function add_values(x::String, y::String)
x * y
end
この演習はコースの一部です
Julia中級
演習の手順
- 次の仕様の関数
largest_valueを作成します。- 入力が
Stringの場合は、mapを使って各引数(x, y, z)にlength関数を適用します。 - 入力が
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"))