Weil nicht alle Typen vergleichbar sind, z.B. Eine Scheibe. So können wir nicht tun, um dieseWie kann man wissen, ob eine Variable beliebigen Typs in Golang Null ist?
var v ArbitraryType
v == reflect.Zero(reflect.TypeOf(v)).Interface()
bearbeiten - Lösung reflect.DeepEqual
var v ArbitratyType
zero := reflect.Zero(reflect.TypeOf(v)).Interface()
isZero := reflect.DeepEqual(v, zero)
Go Dokumentation über reflect.DeepEqual
DeepEqual Tests für tiefe Gleichheit. Es verwendet wo möglich normal == Gleichheit, wird aber Elemente von Arrays, Slices, Maps und Feldern von Strukturen scannen.
Hallo Rhythmische, Vielen Dank für Ihre Antwort! In der Tat sind == und DeepEqual unterschiedlich. DeepEqual funktioniert sowohl für vergleichbare als auch für nicht vergleichbare Variablen, laut go document [reflect.DeepEqual] (https://golang.org/pkg/reflect/#DeepEqual) – v1ct0r
soll ich das noch vergleichbarer verstehen, ich werde es mal ausprobieren , Vielen Dank. –