Go では、通常、列挙型は整数値が割り当てられた定数として実装されます。ただし、String() メソッドを明示的に作成せずに列挙名にアクセスするのは面倒な場合があります。
次の例を考えてみましょう:
const ( MERCURY = 1 VENUS = iota EARTH MARS JUPITER SATURN URANUS NEPTUNE PLUTO )
列挙名を取得するには、String() を定義できます。各列挙値のメソッドを使用すると、繰り返しの再入力やコード生成が発生します。代替手段はありますか?
ストリンガー ツールの使用
Go には、定数の String() メソッドの作成を自動化するストリンガー ツールが用意されています。上記のコードと同じディレクトリで次のコマンドを実行すると、
stringer -type=MERCURY
次の内容を含む新しいファイル mercury_string.go がパッケージ コンテキストに生成されます。
func (MERCURY) String() string
このメソッドにより、 enum 名を簡単に取得し、明示的な文字列変換の必要性を減らします。
追加注:
この手法は、明示的な String() メソッドを使用せずに列挙名を取得する問題を解決しますが、外部ツールの使用が必要であり、特定のシナリオでは常に実行可能であるとは限らないことに注意してください。
以上が明示的な文字列変換を記述せずに Go Enum 名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。