Es ist ein Stück GO Code Ich habe in der GIN-Bibliothek und in der Google Text & Tabellen zu sehen, die Golang godoc - Gruppentyp Erklärungen Erklären
type (
T0 []string
T1 []string
T2 struct{ a, b int }
T3 struct{ a, c int }
T4 func(int, float64) *T0
T5 func(x int, y float64) *[]string
)
wie folgt aussehen
Was ich nicht verstehe ist, was diese Gruppierung tut und was sind einige Zwecke dieser Umsetzung (es gab in der Dokumentation nicht viel, die über dieses Thema ging es sei denn ich es verpasst)ein weiteres Beispiel aus der Gin Bibliothek
type (
RoutesInfo []RouteInfo
RouteInfo struct {
Method string
Path string
Handler string
}
Engine struct {
RouterGroup
HTMLRender render.HTMLRender
allNoRoute HandlersChain
allNoMethod HandlersChain
noRoute HandlersChain
noMethod HandlersChain
pool sync.Pool
trees methodTrees
RedirectTrailingSlash bool
RedirectFixedPath bool
HandleMethodNotAllowed bool
ForwardedByClientIP bool
}
)
Und schließlich - sorry das andere Thema ist aber im Zusammenhang mit diesem
var _ IRouter = &Engine{}
warum gibt es ein _ infront IRouter? Ich weiß, es ist ein blank identifier
aber welcher Zweck es in diesem Fall wird
In Bezug auf das erste Codebeispiel ist es Zweck, Typdeklarationen zu demonstrieren, die Ihnen helfen, benannte und unbenannte Typdeklarationen zu verstehen. Anstatt beispielsweise '[] string' zu schreiben, können Sie stattdessen' T0' oder 'T1' schreiben. Interessanterweise werden 'T0' und' T1' aufgrund ihrer Namen als unterschiedlich angesehen. Empfehlen Sie die Überprüfung [Typidentität] (https://golang.org/ref/spec#Type_identity) –
Nachdem ich das gelesen habe (was ich im oberen Teil geschrieben habe) sehe ich keine Erklärung für den Anon-Typ. Da es 'type()' ist und der Typ andere types + structs kapseln/gruppieren kann, was macht das für eine Datenstruktur und wie hilft es? take of instance die ersten beiden Zeilen von 'RoutesInfo [] RouteInfo' und' RouteInfo struct {} 'warum ist es innerhalb des type() statt einer' var RoutesInfo [] RouteInfo' und einer anderen Deklaration wie 'type RouteInfo struct {} 'und eine andere Zeile für' type Engine struct {} ' – Andrei
Ich glaube, du verstehst das, was du siehst - nichts davon (außer der letzten' var _' Zeile, die du eingefügt hast) sind variable Deklarationen. Sie sind nur Typ-Deklarationen. Die Verwendung von 'type (...)' ist nur eine Kurzform für das Schreiben von 'type' am Anfang jeder Zeile. Es ist nur eine Syntax-Sache - sie haben die gleiche Bedeutung. – joshlf