ホームページ >バックエンド開発 >Golang >Go で任意の型のゼロ値をチェックするにはどうすればよいですか?

Go で任意の型のゼロ値をチェックするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-28 06:49:11551ブラウズ

How Can I Check for Zero Values of Arbitrary Types in Go?

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:

  • Chan
  • Func
  • Array
  • Interface
  • Map
  • Ptr
  • Slice
  • UnsafePointer
  • Struct

使用法例

任意の型の変数 v がゼロかどうかを判断するには:

if reflect.ValueOf(v).IsZero() {
    // v is zero
}

以上がGo で任意の型のゼロ値をチェックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。