Go では、特にスライスのような複合型の場合、すべての変数が比較演算をサポートしているわけではありません。このような場合、直接比較に依存すると、予期しない結果が生じる可能性があります。
幸いなことに、Go 1.13 では、この問題に対処するために、reflect パッケージ内に Value.IsZero() メソッドが導入されました。このメソッドは、任意の型の変数がゼロ値を持つかどうかを判断する簡単な方法を提供します。これを利用する方法は次のとおりです。
if reflect.ValueOf(v).IsZero() { // v is zero, do something }
reflect.ValueOf(v) 式は、変数 v のreflection.Value オブジェクトを抽出します。次に、このオブジェクトに対して IsZero() メソッドが呼び出され、その値がどうかを確認します。
このアプローチは、プリミティブ型に対応するだけでなく、Chan、Func、Array、Interface、Map、 Ptr、Slice、UnsafePointer、および Struct。
以上が任意の Go 変数のゼロ値をチェックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。