Go Funzioni e chiusure letterali


Esempio

Una semplice funzione letterale, stampa Hello! allo stdout:

package main

import "fmt"

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

giocarci sul campo da gioco


Una funzione letterale, che stampa il str su stdout:

package main

import "fmt"

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

giocarci sul campo da gioco


Una funzione letterale, che si chiude sulla variabile str :

package main

import "fmt"

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

giocarci sul campo da gioco


È possibile assegnare una funzione letterale a una variabile:

package main

import (
    "fmt"
)

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

giocarci sul campo da gioco