So ermitteln Sie, ob ein Zeiger in Golang null ist

Freigeben: 2020-01-13 10:51:59
Original
6910 Leute haben es durchsucht

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()
}
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage