vkorbes / aprendago

Curso completo em português da linguagem Go, de zero a ninja! 🇧🇷
http://aprendago.com
1.03k stars 183 forks source link

Exercício: Capítulo 13, Exercício 9 (Nível: 6) #48

Open vkorbes opened 4 years ago

vkorbes commented 4 years ago

Exercício: Capítulo 13, Exercício 9 (Nível: 6)

Link para o vídeo:

Use esta thread para compartilhar sua solução, discutir o exercício com os colegas e pedir ajuda caso tenha dificuldades!

dsmello commented 4 years ago

https://play.golang.org/p/ZdZxyhU9v_U

diegoparra commented 3 years ago

https://play.golang.org/p/5kQXWeKuqg2

albsrocha commented 3 years ago
package main 

import ("fmt")

func main(){
  y := receber()

  fmt.Println(y(5))  
}

func receber() func(x int) int{
  return func(x int) int{
    return x*(x+2)

  }
  }
an4kein commented 3 years ago

https://play.golang.org/p/kXhJkpVAJWG

package main

import "fmt"

/* - Crie uma função que retorna uma função.
- Atribua a função retornada a uma variável.
- Chame a função retornada. */

func principal() func(x int) int {
    return func(x int) int {
        return x
    }
}

func main() {
    retornada := principal()(1337)

    fmt.Println(principal()(10))
    fmt.Println(retornada)
}

Output

10
1337

Program exited.
alansantosmg commented 3 years ago

Não entendi direito a utilidade. Preciso ver mais exemplos, mas aí está a solução.

/* Crie uma função que retorna uma função.
- Atribua a função retornada a uma variável.
- Chame a função retornada.
*/

package main

import (
    "fmt"
    "math"
)

func main() {

    z := funcaoPai(5)

    z()

}

// Recebe raio
// retorna uma funcao que calcula raio do circulo
func funcaoPai(r float64) func() {

    // dado necessario para função de calculo
    pih := math.Pi

    return func() {
        area := pih * pih * r
        fmt.Println(area)

    }
}
tfferrari commented 3 years ago

7, 8 e 9: https://play.golang.org/p/KJsaVqqNfh9

wfrsilva commented 2 years ago

Cap. 13 – Exercícios: Nível #6 – 8 https://go.dev/play/p/yi-EehkuoS2 image

felipe-mello-dos-reis commented 1 year ago

package main
import("fmt")

func pot(n int) func(x int) int{
  magica := func(x int) int{
    i := 1
    for j := 0; j < n; j++{
      i *= x
    }
    return i
  }
  return magica
}

func main(){
  quadrado := pot(2)
  cubo := pot(3)
  fmt.Println("Quadrado de 8:", quadrado(8))
  fmt.Println("Cubo de 8:", cubo(8))
}