String() メソッドを使用せずに Go で列挙型名を取得する
Go では、明示的に定義せずに列挙型名を直接取得することはできません。 String() メソッドを使用して文字列値として取得します。ただし、定数を動的に定義する別のアプローチもあります。
1. Stringer ツール
標準ツール パッケージは、列挙型の String() メソッドを自動的に生成するストリンガー ツールを提供します。 enum 定義と同じディレクトリで次のコマンドを実行すると、ストリンガー ツールは String() メソッドの定義を含むファイルを作成します。
stringer -type=EnumName
2.構造体ベースの列挙型
構造体ベースの列挙型には、基礎となる列挙型の定義とそれを構造体に埋め込むことが含まれます。構造体の各フィールドは列挙値に対応し、その名前が明示的にラベル付けされます。このアプローチの利点は、列挙値とその名前の両方に直接アクセスできることです。
3.文字列ベースの列挙型
文字列ベースの列挙型では、列挙値は文字列として表されます。各文字列値を対応する定数値に関連付けるマップを作成できます。これにより、その値に基づいて列挙型の名前をプログラムで取得できます。
これらのメソッドは定数を動的に定義するための代替アプローチを提供しますが、いずれも列挙型名を明示的に再定義または指定する必要があります。そのため、コードの再利用性や保守の容易さの点で、従来の String() メソッドに比べて大きな利点は得られない可能性があります。以上がString() メソッドを使用せずに Go Enum 名を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。