Heim > Backend-Entwicklung > Golang > Wie extrahiert Gos Typzusicherung „.(data_type)' bestimmte Typen aus Schnittstellenwerten?

Wie extrahiert Gos Typzusicherung „.(data_type)' bestimmte Typen aus Schnittstellenwerten?

Susan Sarandon
Freigeben: 2024-12-24 01:36:10
Original
705 Leute haben es durchsucht

How Does Go's Type Assertion `.(data_type)` Extract Specific Types from Interface Values?

Typ-Assertion in Go: Entmystifizierung des .(data_type) Methode**

In Go, .(data_type ), bekannt als Typzusicherung, ermöglicht das Abrufen eines bestimmten Typs aus einem Schnittstellenwert. Wie in „Effective Go“ beschrieben, geht es darum, „einen Wert des angegebenen expliziten Typs daraus zu extrahieren“.

Im bereitgestellten Code gibt „reflect.TypeOf(b)“ „interface{}“ zurück, da b zugewiesen ist der Schnittstellenwert „silly“ vom Typ string. Reflect.TypeOf(b.(string)) gibt jedoch „string“ zurück, da die Typzusicherung explizit angibt, dass b einen Zeichenfolgenwert enthält.

Typzusicherungen werden zur Laufzeit verwendet, um einen bestimmten Typ aus einer Schnittstelle zu extrahieren. Sie unterscheiden sich von der Typkonvertierung darin, dass sie keine neue Kopie des Werts erstellen, sondern auf den Typ des zugrunde liegenden Werts zugreifen.

Im Fall von b.(string) gibt die Assertion einen String-Wert zurück. Dies ermöglicht stringspezifische Vorgänge wie das Schneiden oder Überprüfen der Länge von Strings. Darüber hinaus können Sie den Erfolg der Typzusicherung testen, indem Sie einen untypisierten booleschen Wert zuweisen:

s, ok := b.(string) // s is of type string
if !ok {
    // b did not contain a value of type string!
}
Nach dem Login kopieren

Zur weiteren Verdeutlichung: Typzusicherungen sagen Go nicht, dass b eine Zeichenfolge ist. Stattdessen versuchen sie, zur Laufzeit einen Zeichenfolgenwert aus b zu extrahieren, was zu einer Panik führt, wenn b einen anderen Typ enthält (es sei denn, der optionale boolesche Wert wird zugewiesen). Der aus der Behauptung resultierende Wert hat den angegebenen Datentyp und gewährt Zugriff auf seine spezifischen Operationen und Eigenschaften.

Das obige ist der detaillierte Inhalt vonWie extrahiert Gos Typzusicherung „.(data_type)' bestimmte Typen aus Schnittstellenwerten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage