Go Funciones y cierres literales


Ejemplo

Una simple función literal, imprimiendo Hello! al stdout

package main

import "fmt"

func main() {
    func(){
        fmt.Println("Hello!")
    }()
}

jugar en el patio de recreo


Una función literal, imprimiendo el argumento str a stdout:

package main

import "fmt"

func main() {
    func(str string) {
        fmt.Println(str)
    }("Hello!")
}

jugar en el patio de recreo


Una función literal, cerrando sobre la variable str :

package main

import "fmt"

func main() {
    str := "Hello!"
    func() {
        fmt.Println(str)
    }()
}

jugar en el patio de recreo


Es posible asignar una función literal a una variable:

package main

import (
    "fmt"
)

func main() {
    str := "Hello!"
    anon := func() {
        fmt.Println(str)
    }
    anon()
}

jugar en el patio de recreo