Heim >Backend-Entwicklung >Golang >Wie kann man in Go-Schnittstellen sicher auf Null prüfen?

Wie kann man in Go-Schnittstellen sicher auf Null prüfen?

DDD
DDDOriginal
2024-12-09 02:48:13393Durchsuche

How to Safely Check for Nil in Go Interfaces?

So prüfen Sie in Go auf Null und Null-Schnittstellen

In Go ist die Prüfung auf Null und Null-Schnittstellen eine häufige Aufgabe. Allerdings ist die aktuelle Implementierung der isNil-Funktion nicht optimal.

Die Funktion „reflect.ValueOf(a).IsNil()“ gerät in Panik, wenn der Werttyp etwas anderes als Chan, Func, Map, Ptr, Interface oder ist Scheibe. Um diese Panik zu vermeiden, enthält die Funktion isNil einen Recover()-Mechanismus.

Alternative Lösung

Glücklicherweise gibt es eine einfachere und effizientere Möglichkeit, diese Prüfung durchzuführen. Gemäß der Diskussion auf der Golang-Nuts-Mailingliste können Sie sich auf einen einfachen Vergleich mit Null verlassen, wenn Sie bestimmte Regeln befolgen:

  • Speichern Sie niemals (*T) (Null) in einer Schnittstelle.
  • Eine untypisierte Null einer Schnittstelle zuzuweisen ist immer sicher.

Das obige ist der detaillierte Inhalt vonWie kann man in Go-Schnittstellen sicher auf Null prüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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