Go Lambda

Da Andreabont's Wiki.

In GO il concetto di lambda è implementato dalle funzioni anonime.

Assegnazione di una lambda ad una variabile

lambda := func(x int) int { return x*x }
println(lambda(2))

Chiamata di una lambda sul posto

println( func(x int) int { return x*x }(2) )

Inserire una lambda in una struct

// Prototipo
type funzione func(int) int

// Struttura
type struttura struct {
    funzione
}

Poi quando andreamo a dichiararla nel main

miaStruttura := struttura{ func(x int) int { return x*x } }
println(miaStruttura.funzione(2))