Golang geschachtelte Klasse innerhalb der Funktion
Gehen verschachtelte struct innerhalb der Funktion, aber keine verschachtelte Funktion außer lambda, bedeutet es, es gibt keine Möglichkeit, zu definieren, eine geschachtelte Klasse innerhalb der Funktion?
func f() {
//nested struct Cls inside f
type Cls struct {
...
}
//try bounding foo to Cls but fail
func (c *Cls) foo() {
...
}
}
Also es fühlt sich ein bisschen seltsam, dass die Klasse Schwächen innerhalb der Funktion.
Irgendwelche Tipps?
struct
ist ein struct-Typ. Gehen Sie nicht über Klassen.- sorry das
class
oben bedeutetstruct
mit bounding-Funktion. Verzeihen Sie meine falsche Ausdruck. - Ja, ich habe verstanden, ich habe nur korrigiert, den Begriff oder Begriffe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigentlich ist es egal, ob Sie möchten, um die Funktion zu deklarieren mit oder ohne Empfänger: verschachteln von Funktionen in Gehen, sind nicht erlaubt.
Obwohl Sie verwenden können, Funktionsliterale zu erreichen, so etwas wie dieses:
Hier erstellen wir eine variable
foo
hat eine Funktion geben, und es ist delcared innerhalb einer anderen Funktionf
. Aufruf der "äußeren" Funktionf
Ausgänge:"Hello World!"
als erwartet.Versuchen Sie es auf Gehen Spielplatz.
struct
?struct
Art wie der Empfänger, aber es wird nicht ein Teil derstruct
's Methode festgelegt. Ein Function literal ist nicht Funktion, es ist nur ein Wert (welche eine Funktion der Art).