Unterstützt Go Lambda-Ausdrücke oder ähnliches?Hat Go Lambda-Ausdrücke oder ähnliches?
Ich möchte eine Bibliothek aus einer anderen Sprache portieren, die Lambda-Ausdrücke (Ruby) verwendet.
Unterstützt Go Lambda-Ausdrücke oder ähnliches?Hat Go Lambda-Ausdrücke oder ähnliches?
Ich möchte eine Bibliothek aus einer anderen Sprache portieren, die Lambda-Ausdrücke (Ruby) verwendet.
Here is an example, kopiert und eingefügt sorgfältig:
package main
import fmt "fmt"
type Stringy func() string
func foo() string{
return "Stringy function"
}
func takesAFunction(foo Stringy){
fmt.Printf("takesAFunction: %v\n", foo())
}
func returnsAFunction()Stringy{
return func()string{
fmt.Printf("Inner stringy function\n");
return "bar" // have to return a string to be stringy
}
}
func main(){
takesAFunction(foo);
var f Stringy = returnsAFunction();
f();
var baz Stringy = func()string{
return "anonymous stringy\n"
};
fmt.Printf(baz());
}
Lambda-Ausdrücke sind auch Funktionsliteralen genannt. Go unterstützt sie vollständig.
Siehe die Sprache spec: http://golang.org/ref/spec#Function_literals
einen Code-walk Siehe, mit Beispielen und eine Beschreibung: http://golang.org/doc/codewalk/functions/
Ja
In Computer-Programmierung, eine anonyme Funktion oder Lambda Abstraktion (func (literal) ist eine Funktionsdefinition, die nicht an einen Bezeichner gebunden ist, und Go unterstützt anonyme Funktionen, die Closures bilden können. Anonyme Funktionen sind nützlich, wenn Sie eine Funktion inline definieren möchten, ohne sie benennen zu müssen.
Die Funktion intSeq gibt eine andere Funktion zurück, die wir anonym im Rumpf von intSeq definieren. Die zurückgegebene -Funktion wird über die Variable i geschlossen, um einen Abschluss zu bilden.
Output
$ go run closures.go
1
2
3
1
warum hast du das gesagt? kopiert und sorgfältig eingefügt? :) – loyalflow
weil ich den Code kopiert habe, und wollte es klar machen :) – perreal
Ich würde gerne mehr auf Ihre Frage als kopierten Code sehen. Zuallererst könntest du ein "Ja"/"Nein"/"teilweise" etc. hinzufügen. Dann ein bisschen Beschreibung, was dein Code eigentlich macht. – Kissaki