Heim > Backend-Entwicklung > Golang > So überprüfen Sie den Nullzeiger in Golang

So überprüfen Sie den Nullzeiger in Golang

(*-*)浩
Freigeben: 2019-12-31 14:35:32
Original
7850 Leute haben es durchsucht

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 suchen

   var pi *int = nil
    var i interface{}
    i = pi
    fmt.Println(i == nil) // 结果为 false
Nach dem Login kopieren

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

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!

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