Golang での任意の型のゼロ値のチェック
プログラミングにおける一般的なタスクの 1 つは、変数が初期化されているか、変数が初期化されているかどうかを判断することです。デフォルト値。ただし、すべての型に共通のゼロ値がないため、Golang ではこれが困難になる可能性があります。
比較の課題
変数を比較する従来のアプローチすべての型が比較できるわけではないため、リフレクションの Zero() 値は常に機能するとは限りません。たとえば、スライスは比較できないため、次のコードを使用することはできません:
var v ArbitraryType if v == reflect.Zero(reflect.TypeOf(v)).Interface() { // v is zero }
Value.IsZero() によるソリューション
幸いなことに、Go 1.13 が導入されました。 Reflect パッケージの Value.IsZero() メソッド。このメソッドは、任意の型の変数がゼロかどうかを確認するソリューションを提供します。構文は次のとおりです:
reflect.ValueOf(v).IsZero()
このメソッドは、基本的な型だけでなく、 for:
使用法例
任意の型の変数 v がゼロかどうかを判断するには:
if reflect.ValueOf(v).IsZero() { // v is zero }
以上がGo で任意の型のゼロ値をチェックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。