Aula 53
Como Passar uma Função como Argumento para Outras Funções na Linguagem Golang
Summary
Resumo da Aula sobre Passagem de Funções como Argumentos
Nesta aula, aprendemos sobre como passar uma função como argumento para outra função. O foco está na definição de uma função chamada computar
, que aceita como argumento uma função fn
.
Estrutura da Função computar
- Argumento: uma função
fn
. - Assinatura:
fn
deve aceitar dois parâmetros do tipofloat64
e retornar umfloat64
. - Retorno: A função
computar
chamaráfn
com os valores 5 e 6 e retornará o resultado.
Passos Implementados
-
Definição da função
computar
:- Chama a função
fn
com os valores 5 e 6. - Retorna o resultado da função chamada.
- Chama a função
-
Uso da função
somar
:- A função
somar
é definida anteriormente e é passada como argumento paracomputar
. - O resultado esperado da chamada
computar(somar)
é 11.
- A função
-
Testes:
- O código foi testado e funcionou conforme esperado, retornando 11 ao somar 5 e 6.
- Também foi demonstrado o uso da função
multiplicar
.
-
Extensão do exemplo:
- Aprofundou-se em como passar múltiplos argumentos, como
somar
emultiplicar
, paracomputar
. - Foi adicionado um segundo parâmetro
fn2
para a funçãocomputar
, permitindo chamar duas funções diferentes, resultando na soma de seus resultados.
- Aprofundou-se em como passar múltiplos argumentos, como
Resultado Final
O resultado final ao chamar computar(somar, multiplicar)
com os valores apropriados foi 23, demonstrando como passagens de funções funcionam efetivamente.
Conclusão
A aula conclui com a afirmação de que conseguimos passar funções como argumentos de outras funções e encoraja a prática com diferentes funções e valores.
Video Transcript
Nesta aula vamos aprender como passar uma função como argumento para outra função.
Já aprendemos a definir uma função, uma variável, uma função, armazenar aquela função
na variável, agora a gente vai aprender como passar com um argumento a própria função
para outra função.
Então, vamos supor que a gente tenha uma função aqui fora, chamado fang, computar, o
nome da função, essa função aqui vai levar como argumento uma função, uma função.
Então vamos chamar esse argumento de fn, vai ser uma função, vamos já escrever a assinatura.
O valor de retorno dessa função computar será um float 64.
Então, o que a gente vai fazer nesta função computar?
A gente vai fazer o seguinte, a gente vai chamar a função que foi passada com um argumento
com os valores 5 e 6, tá?
E a gente vai retornar esse chamado da função.
Então, agora falta a gente definir o tipo dessa variável, tipo da variável fn vai
ser função.
Então, vamos definir aqui uma função, tá?
Essa função vai levar dois parâmetros do tipo float 64 e como saída da função
será também float 64.
Então o tipo de fn será função com dois parâmetros float 64 e saída, valor de retorno
float 64.
Então, é que a gente faz na função computar, pega a função fn que foi passada como argumento
a computar e chama a função com os argumentos 5 e 6 e esse valor que a gente espera, seja
float 64, vai ser retornado do computar aqui.
Então, vamos lá embaixo, eu vou tirar esses caras aqui e só dizer println computar, tá?
Agora o computar, quando você chama computar, tem que passar uma função, vou passar a
somar.
A gente sabe que somar é uma função, né?
Variável aqui, armazena que mantém aquela função para somar.
Então essa função aqui vai ser passada como argumento para somar, computar e essa função
aqui já vai aparecer aqui, tá?
Como o valor, como variável fn e vai ser chamado dessa maneira.
Então quando você chama fn 5 e 6, na verdade vai ser ffunk a somar 5 e 6 e vai dar o que?
11, né?
A soma de 5 e 6 é 11.
Então vamos, a gente espera aqui, o valor seja 11.
Vamos olhar, vamos testar e eu usei o arquivo errado, ffn values 2.
Isso acontece aqui porque eu não usei, eu declares multiplicar, mas não usei, então
deu problema no computador.
Então vamos comentar, tá?
Pro computador ignorar as linhas 13 e a 15 com a barra-barra, antes do código, cabelinha.
Então deu 11 como a gente já esperava, tá?
Então vamos novamente ver o que aconteceu.
Chamamos a função computar com o argumento somar que na verdade é uma função.
Passamos uma função para outra função.
Então essa função somar apareceu como argumento aqui, a gente chama somar, um valor de 5 e 6.
Pode também usar multiplicar, olha aqui o que acontece, se eu comentar somar e descomentar
multiplicar e fazer multiplicar, a gente espera que seja o quê?
Será, vai ser chamado com 5 e 6, então vai ser 30.
Tá bom?
Então você pode até adicionar mais funções, um outro argumento.
Por exemplo, se eu quiser chamar ambos somar e multiplicar, eu posso até chamar assim,
somar, vírgula multiplicar para computar, agora precisamos ter 1, não só 1, né?
Aqui mais 2, né?
Fn2 vai ser o segundo parâmetro do tipo funk, flow de 64 com entrada e outro flow de 64 com
entrada, se corresponde a quem?
A yb da segunda função aqui que é passada.
E como saída dessa função aqui vai ser um flow de 64 também.
E se você quiser, por exemplo, retornar a soma de fn, tá chamado de fn2, sei lá,
valor 3 e 4, eu te desafio aí para você ver qual é a que você espera que seja retornado,
seja imprimido na linha 17, o que vai acontecer?
Então vamos ver aqui, ele vai chamar a computar, vai passar dois argumentos, somar e multiplicar,
uma função, uma função, somar vai ser correspondente a fn, multiplicar vai ser correspondente
a fn2.
Se a gente chamar somar que é o fn, 5 e 6 dá 11, se a gente chamar o fn2 que é multiplicar
com 3 e 4, vai ser 3 vezes 4 que é 12, então a gente pega esses valores e soma, então
11 mais 12 é 23, então a gente espera que esse valor retornado seja 23.
Vamos testar?
Então realmente é 23.
Tá certo então?
Por essa aula é só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: