Um momento
Aula 52
Cursos / Aprenda Go / Golang (Curso de Programação)
Como Armazenar Funções em uma Variável na Linguagem Golang - Aula de Go

Summary

Resumo da Aula de Funções em Go

Nesta aula, aprendemos sobre o armazenamento de funções invariáveis e a passagem de funções como argumentos em Go. O conceito de funções como valores é central, permitindo que uma função seja passada como argumento para outra ou retornada por outra função, algo bastante comum para quem vem de linguagens como JavaScript.

Definição de Funções

  • Definindo uma Função Simples:
    • Criamos uma função chamada somar que recebe dois parâmetros do tipo float64 e retorna a soma deles também como float64.
    • Exemplo de chamada: somar(3.4, 4.3) que retorna 7.7.

Armazenando Funções em Variáveis

  • Função Armazenada em Variável:
    • Definimos uma variável funcaoSomar do tipo função, que aceita dois parâmetros float64 e retorna um float64.
    • Usamos esta variável para armazenar a função somar e invocá-la como qualquer outra função.
  • Simplificando a Assinatura:
    • Quando os parâmetros têm o mesmo tipo, é possível omitir o tipo de todos, exceto o último.
    • Podemos também usar a sintaxe simplificada para declarar funções.

Criação da Função Multiplicar

  • Criando uma Função Multiplicar:
    • A função multiplicar é definida de forma semelhante, recebendo dois parâmetros float64 e retornando o produto.
    • Exemplo de chamada: multiplicar(3.0, 4.0) que retorna 12.0.

Ao final da aula, os alunos foram incentivados a praticar a criação de funções próprias e a experimentar o armazenamento de funções em variáveis.

Video Transcript

Nesta aula nós vamos aprender como armazenar funções invariáveis e também depois como passar essas funções como argumento para outras funções. Certo? Então, a função, funções também são valores, a linguagem volante. As funções podem ser usadas como argumentos para outras funções e também podemos retornar uma função de outra função. Se você vem da linguagem JavaScript, isso é bem comum, não há nada de anormal. Então vamos ver como é que faz isso. Vamos, por exemplo, definir primeiro a função. Vou aqui fora. A gente já sabe como definir essa função. Fala a palavra chave, fã. E o nome da função. Nesses casos, vamos fazer uma função bem trivial, só para somar dois números, dois variáveis do tipo ponto flutuante. Vamos lá. Vamos chamar essa função de somar e os parâmetros serão os seguintes. Parâmetro a do tipo float64 e parâmetro b do tipo float64. Valor de retorno será, depois aqui, um float64 que a soma desses dois. Abra os chaves e retorna. Vamos retornar o valor de a mais b. Bem trivial essa função. Vamos chamar a função nome somar parâmetros. Qual é a entrada da função? Parâmetro a do tipo float64. Parâmetro b do tipo float64. Qual é a saída dessa função? É um valor do tipo float64 que será a soma de a mais b. Nós já sabemos aqui como chamar a função. Por exemplo, se eu chamar a soma 3,7, vai somar 3,4, vai somar 3 e 4 e o valor será 7 como resultado. Podemos usar o fmt.println para ver esse valor. Vamos aqui. Go run fmvalues.go. O valor 7 como esperado. Se eu tiver aqui essa função aqui, se os parâmetros forem do mesmo tipo, eu posso omitir o tipo de cada parâmetro. Mas tem que deixar o tipo do último. Então, o tipo de a e o tipo de b será float64. Se você quiser aprender maneiras de encortar a assinatura da função, está aí outra maneira. Ambos a e b são do tipo float64. Legal. Já sabemos disso, mas agora vamos fazer o seguinte. Olha aqui, eu quero criar uma variável para armazenar essa função. Em vez de ter uma função aqui fora, eu quero armazenar essa função numa variável. Vamos fazer. Vamos definir uma variável aqui. Vou chamar de função somar. Essa variável é o tipo. O tipo será uma função. A variável irá armazenar a função. Para poder fazer isso, eu vou dizer o tipo que vai ser o que? Vai ser funk, função, mas os parâmetros tem que dizer o tipo de cada parâmetro. Já já a gente já vê como é que encorta isso, mas vamos assim mesmo. O primeiro parâmetro vai ser a... Vamos ver, tipo do parâmetro, desculpa. Float64, segundo é float64 também. Agora, qual é o valor de retorno da função? Vou se pôr aqui fora. Float64 também. Agora vamos dizer igual e definir essa função aqui. Recordar, colar aqui. Olha a diferença aqui. O que a gente tem agora? É meio muito longo, mas temos uma variável chamada função somar. A variável do tipo função, que leva a comparamento 2, entrada de 2 floats, saída de 1 float, 64. Definimos essa variável com essa função somar. Na verdade, não precisa do nome aqui, mas... Eu removi o nome somar, que o nome vai... Eu defini a variável aqui e defini essa função com aib, float64, ambos, e retorna aib. Agora, posso usar a função somar, é uma variável. Eu posso chamar a variável como se fosse a função porque realmente é uma função. Então, fala a função somar e passa os parâmetros. Vamos ver se deu na mesma... Deu na mesma. Valor 7 foi retornado. Então, a diferença agora é que a função de somar vai armazenar-o numa variável função somar. Podemos até renomear a função somar para apenas somar. Então, renomei, dá na mesma. Agora vamos aprender como encortar isso aqui. O título dessa variável pode ser implícito, então posso remover, salvar e testar e vai dar na mesma. Posso encortar mais ainda, se remover a palavra variável e adicionar os dois pontos antes do sinal de igual. Tá certo? Então, encortamos a divisão da variável somar. Então, vamos fazer outra aqui. Vamos... Quero que você faça comigo. Quero que você faça uma função multiplicar, chamada multiplicar. Vamos fazer essa função para multiplicar valores, aib e armazenar a função, própria função, na variável chamada multiplicar. Então, vamos lá. O nome da variável vai ser multiplicar dois pontos igual. Vamos definir como uma função. Levar aguentos A, flow de 64, aguentos B, flow de 64, tipo. Retorna a flow de 64 e multiplica A vezes B como valor de return. Retorno. Como aib tem o mesmo tipo, eles estão aparecendo na lista seguidos. Um do lado do outro, eu posso emover esse cara para simplificar a assinatura da função. Vamos testar aqui embaixo, dizer, multiplicar 3 e 4, vamos ver no que deve dar 12. Então, apareceu 12 depois de 7. Tá? 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: