0
Für den folgenden Code zurück:Go: ist es möglich, Zeiger auf eine Funktion
package main
import "fmt"
type intFunc func(int) int
var t = func() intFunc {
a := func(b int) int { return b}
return a
}
func main() {
fmt.Println(t()(2))
}
Gibt es einen Weg, um den Zeiger auf die Funktion anstelle der Funktion direkt zurück? (etwas wie return &a
)? hier
ist der Spielplatz: https://play.golang.org/p/IobCtRjVVX
Ja, aber warum sollten Sie/wollen? Funktionen sind erste Klasse, obwohl ich die Assembly überprüfen sollte, verhalten sie sich wahrscheinlich eher wie Referenztypen als Daten. –
@EliasVanOotegem: Vielleicht möchten Sie in der Lage sein, einen Funktionszeiger als zu setzendes Argument zu übergeben. Es ist eine ähnliche Situation wie wenn Sie einen Zeiger auf einen Zeiger benötigen. – JimB
@ JimB: Fair genug: Setzen Sie einen Wert auf ein Zeigerargument. Aber Go hat mehrere Rückgabewerte, ich setze kaum Werte auf Argumente, weil ich nur 2 oder 3 Werte zurückgeben kann, wenn ich wirklich will/muss. Und das OP fragt speziell nach _returning_ einen Zeiger auf eine Funktion –