Multiple dispatch
Multiple dispatch é uma das grandes vantagens do Julia, oferecendo flexibilidade e ganhos de velocidade aos seus programas. Lembre-se: multiple dispatch permite executar um método diferente com base no tipo do argumento passado para a função.
O exemplo no vídeo usou multiple dispatch para retornar um valor diferente dependendo de o tipo do argumento ser uma string ou não.
function add_values(x, y)
x + y
end
function add_values(x::String, y::String)
x * y
end
Este exercício faz parte do curso
Julia intermediário
Instruções do exercício
- Crie uma função
largest_valueque:- se a entrada for
String, usemappara aplicar a funçãolengtha cada argumento(x, y, z). - se a entrada for
Bool, simplesmente retorne os argumentos. - se a entrada for de qualquer outro tipo, obtenha o máximo de todos os valores usando
maximum.
- se a entrada for
- Remova as linhas comentadas no final (os casos de teste) e garanta que a lógica faça sentido!
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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"))