Heim >Backend-Entwicklung >Golang >Warum schlagen Typzusicherungen bei der Umwandlung in Typaliase in Go fehl?
Umwandlung in Typaliase in Go
Bei der Umwandlung in einen Typalias in Go werden Typzusicherungen anstelle der Umwandlung verwendet. Allerdings unterscheidet sich das Verhalten von Typzusicherungen von dem von Typkonvertierungen.
Typkonvertierungen
Typkonvertierungen erfolgen automatisch, wenn ein Wert in einer Variablen eines anderen Typs gespeichert wird . Beispielsweise führt die Zuweisung eines int zu einer float64-Variablen zu einer Typkonvertierung.
Typzusicherungen
Typzusicherungen prüfen explizit, ob ein Wert in einer Schnittstellenvariablen{} gespeichert ist ist von einem bestimmten Typ. Sie nehmen die Form a.(T) an, wobei a die Variable und T der Zieltyp ist.
Problem bei der Umwandlung in Typaliase
Wie im gezeigt Im bereitgestellten Playground-Snippet führt der Versuch, eine interface{}-Variable in einen Typalias (somethingFuncy) umzuwandeln, zu einer Panik. Dies liegt daran, dass Typzusicherungen erfordern, dass der dynamische Typ des Werts mit dem Zieltyp identisch ist.
Erklärung
In Go bezieht sich Typidentität darauf, dass zwei benannte Typen vorhanden sind denselben Typnamen haben und aus derselben TypeSpec stammen. Da Typaliase effektiv benannte Typen sind, müssen sie genau den gleichen Typnamen und die gleiche Deklaration haben, um als identisch zu gelten.
Fazit
Umwandlung in Typaliase in Go mithilfe von Typ Zusicherungen sind nicht möglich, da der Alias-Typ mit dem Zieltyp identisch sein muss. Es kann nur genau der Typ mit dem gleichen Namen behauptet werden.
Das obige ist der detaillierte Inhalt vonWarum schlagen Typzusicherungen bei der Umwandlung in Typaliase in Go fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!