Heim >Backend-Entwicklung >Golang >Wie kann ich eine dynamische Typumwandlung in Go mit unbekannten Typen durchführen?
Dynamische Typumwandlung in Go
In Go erfordert das Zuweisen des Werts einer Schnittstelle zu einer typisierten Variablen Kenntnisse über den Typ der Variablen. Was aber, wenn der Typ vorher unbekannt ist?
Die herkömmliche Umwandlungsmethode beinhaltet eine fest codierte Typumwandlung, wie zum Beispiel:
var intAge = interfaceAge.(int)
Um das Szenario anzugehen, in dem der Typ unbekannt ist, Einige Entwickler schlagen möglicherweise Folgendes vor:
var x = getType() var someTypeAge = interfaceAge.(x)
Dies ist jedoch in Go nicht möglich. Die Sprache ist statisch typisiert, was bedeutet, dass Variablentypen zur Kompilierzeit bestimmt werden.
Alternativer Ansatz: Typwechsel
Um den Typ einer Schnittstelle{} dynamisch zu bestimmen, geben Sie Folgendes ein: Switching kann eingesetzt werden:
var t interface{} t = functionOfSomeType() switch t := t.(type) { default: fmt.Printf("unexpected type %T", t) // %T prints the type of t case bool: fmt.Printf("boolean %t\n", t) // t has type bool case int: fmt.Printf("integer %d\n", t) // t has type int case *bool: fmt.Printf("pointer to boolean %t\n", *t) // t has type *bool case *int: fmt.Printf("pointer to integer %d\n", *t) // t has type *int }
Dieser Ansatz ermöglicht die dynamische Identifizierung des Typs einer Schnittstelle{} und anschließende typspezifische Handhabung.
Das obige ist der detaillierte Inhalt vonWie kann ich eine dynamische Typumwandlung in Go mit unbekannten Typen durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!