Heim > Artikel > Backend-Entwicklung > So überprüfen Sie den Nullzeiger in Golang
Beim Zuweisen eines Nullzeigerobjekts zu einer Schnittstelle eeDas ist nicht schwer zu verstehen, weil i = pi, anstatt i Null zuzuweisen , i zeigt auf das Objekt pi.
Bestimmen Sie, ob der Zeiger in der Schnittstelle null ist
Die Frage ist nun also, wie Sie feststellen können, ob der Zeiger in der Schnittstelle null ist null?
Wenn Sie den Typ kennen, können Sie natürlich Typzusicherungen verwenden und diese dann mit Null auswerten. Zum Beispiel ai, ok := i.(*int) und dann beurteilen ai == nil.
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 suchenvar pi *int = nil var i interface{} i = pi fmt.Println(i == nil) // 结果为 falseAber es ist wirklich hässlich, eine solche Verzögerung aufzuerlegen Ich verwende Typurteil. Es wurde so
func IsNil(i interface{}) bool { defer func() { recover() }() vi := reflect.ValueOf(i) return vi.IsNil()}
Das obige ist der detaillierte Inhalt vonSo überprüfen Sie den Nullzeiger in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!