Um momento
Aula 53
Cursos / Aprenda Go / Golang (Curso de Programação)
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 tipo float64 e retornar um float64.
  • Retorno: A função computar chamará fn com os valores 5 e 6 e retornará o resultado.

Passos Implementados

  1. Definição da função computar:

    • Chama a função fn com os valores 5 e 6.
    • Retorna o resultado da função chamada.
  2. Uso da função somar:

    • A função somar é definida anteriormente e é passada como argumento para computar.
    • O resultado esperado da chamada computar(somar) é 11.
  3. 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.
  4. Extensão do exemplo:

    • Aprofundou-se em como passar múltiplos argumentos, como somar e multiplicar, para computar.
    • Foi adicionado um segundo parâmetro fn2 para a função computar, permitindo chamar duas funções diferentes, resultando na soma de seus resultados.

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: