ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Crie uma função largest_value que:
    • se a entrada for String, use map para aplicar a função length a 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.
  • 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"))
Editar e executar o código