Prüfung auf Nullwert beliebiger Typen in Golang
Eine der häufigsten Aufgaben bei der Programmierung besteht darin, zu bestimmen, ob eine Variable initialisiert ist oder einen solchen hat Standardwert. Dies kann jedoch in Golang eine Herausforderung darstellen, da es für alle Typen keinen universellen Nullwert gibt.
Herausforderung des Vergleichs
Der herkömmliche Ansatz, eine Variable mit zu vergleichen Der Zero()-Wert der Reflexion funktioniert nicht immer, da nicht alle Typen vergleichbar sind. Slices sind beispielsweise nicht vergleichbar, sodass der folgende Code nicht verwendet werden kann:
var v ArbitraryType if v == reflect.Zero(reflect.TypeOf(v)).Interface() { // v is zero }
Solution with Value.IsZero()
Glücklicherweise wurde Go 1.13 eingeführt die Methode Value.IsZero() im Reflect-Paket. Diese Methode bietet eine Lösung, um zu überprüfen, ob eine Variable eines beliebigen Typs Null ist. Die Syntax lautet:
reflect.ValueOf(v).IsZero()
Diese Methode funktioniert nicht nur für Basistypen, sondern auch für:
Nutzung Beispiel
Um festzustellen, ob eine Variable v eines beliebigen Typs Null ist:
if reflect.ValueOf(v).IsZero() { // v is zero }
Das obige ist der detaillierte Inhalt vonWie kann ich in Go nach Nullwerten beliebiger Typen suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!