すべてのタイプが同等であるとは限りません。スライス。ソリューションreflect.DeepEqualGolangで任意の型の変数がゼロであるかどうかを知るには?
var v ArbitratyType
zero := reflect.Zero(reflect.TypeOf(v)).Interface()
isZero := reflect.DeepEqual(v, zero)
ゴードキュメント深い平等約reflect.DeepEqual
DeepEqualテスト - だから我々はこの
var v ArbitraryType v == reflect.Zero(reflect.TypeOf(v)).Interface()
編集を行うことはできません。可能であれば通常の==等値を使用しますが、配列、スライス、マップ、および構造体のフィールドの要素をスキャンします。
こんにちは、リズミカル、お返事ありがとうございます!実際、==とDeepEqualは異なります。 DeepEqualは、goドキュメント[reflect.DeepEqual](https://golang.org/pkg/reflect/#DeepEqual) – v1ct0r
によると、比較可能な変数と比較できない変数の両方で動作します。私はまだ比較可能であることを理解していますが、 、ありがとう。 –