Heim >Backend-Entwicklung >Golang >So ermitteln Sie, ob ein Zeiger in Golang null ist
Golangs Methode zur Bestimmung, ob ein Zeiger leer ist:
1 Wenn Sie den Typ kennen, können Sie natürlich Typzusicherungen verwenden und dann feststellen, ob er leer ist. Zum Beispiel ai, ok := i.(*int) und dann beurteilen ai == nil.
2. Ich weiß nicht, um welche Art von Zeiger es sich handelt, daher muss ich Reflection vi :=flect.ValueOf(i) und dann vi.IsNil() zur Beurteilung verwenden. Aber wenn i kein Zeiger ist, tritt beim Aufruf von IsNil eine Ausnahme auf. Möglicherweise müssen Sie eine Funktion wie diese schreiben, um nach Null zu suchen
func IsNil(i interface{}) bool { defer func() { recover() }() vi := reflect.ValueOf(i) return vi.IsNil() }
Aber es ist wirklich hässlich, eine solche Verzögerung aufzuerlegen Ich verwende die Typbeurteilung. Es wird so:
func IsNil(i interface{}) bool { vi := reflect.ValueOf(i) if vi.Kind() == reflect.Ptr { return vi.IsNil() } return false }
Weitere Golang-Kenntnisse finden Sie in der Spalte Golang-Tutorial auf der chinesischen PHP-Website.
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob ein Zeiger in Golang null ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!