In Go ist es möglich, einen Typdeskriptor ohne Instanz zu erhalten. Mithilfe der Funktion „reflect.TypeOf()“ können Sie auf die Typdarstellung eines Zeigers auf einen Nullwert zugreifen.
<code class="go">t := reflect.TypeOf((*int)(nil)).Elem() fmt.Println(t) // Output: int t = reflect.TypeOf((*http.Request)(nil)).Elem() fmt.Println(t) // Output: http.Request t = reflect.TypeOf((*os.File)(nil)).Elem() fmt.Println(t) // Output: os.File</code>
Für Der Einfachheit halber können Sie globale Konstanten definieren, um verschiedene Typen darzustellen, sodass keine Reflect.Type-Variablen erstellt werden müssen:
<code class="go">type TypeDesc int const ( TypeInt TypeDesc = iota TypeHTTPRequest TypeOSFile )</code>
Sie können diese Konstanten dann in Switch-Anweisungen verwenden Bestimmen Sie den Typ eines Werts:
<code class="go">func printType(t TypeDesc) { switch t { case TypeInt: fmt.Println("Type: int") case TypeHTTPRequest: fmt.Println("Type: http.Request") case TypeOSFile: fmt.Println("Type: os.File") } }</code>
Die Verwendung von Konstanten für die Typdarstellung bietet mehrere Vorteile:
Das obige ist der detaillierte Inhalt vonWie bestimme ich den Typ eines Werts in Go Without an Instance?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!