Bei der Arbeit mit Gos vielseitigem Schnittstellentyp{} ist es wichtig, sich mit seiner inhärenten Flexibilität vertraut zu machen. Um interface{} effektiv zu nutzen, gehen wir auf Ihre interessanten Fragen ein:
Type Switch to the Rescue:
switch v := w.(type) { case int: fmt.Println("Type: integer") case string: fmt.Println("Type: string") }
Verwendung von TypeName:
fmt.Println(reflect.TypeOf(w).Name())
Typzusicherung mit Typname:
typeName := reflect.TypeOf(w).Name() if typeName == "int" { value := w.(int) } else if typeName == "string" { value := w.(string) }
In Ihrem spezifischen Beispiel können Sie den „echten“ Typ erhalten von w mithilfe eines Typschalters:
switch w := weirdFunc(5).(type) { case int: fmt.Println("w is an integer") case string: fmt.Println("w is a string") }
Alternativ können Sie das Reflect-Paket nutzen, um den Typnamen abzurufen selbst:
typeName := reflect.TypeOf(w).Name() fmt.Println("w's type name:", typeName)
Das obige ist der detaillierte Inhalt vonWie kann ich den zugrunde liegenden Typ der „Schnittstelle{}' von Go bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!