iota を通じて実現される Go 列挙には、明示的な String() 関数がないため、直接の取得が制限されます。 enum 名を文字列として指定します。この記事では、この制限を克服し、ラベルを再入力せずに列挙名を取得するための代替案を検討します。
考えられる解決策の 1 つは、標準ツール パッケージのストリンガー ツールを利用することです。このツールは、列挙型の String() 関数の生成を自動化します。
たとえば、次の列挙型定義を考えてみましょう。
const ( MERCURY = 1 VENUS = iota EARTH MARS JUPITER SATURN URANUS NEPTUNE PLUTO )
この列挙型の String() 関数を生成するには、ターミナルで次のコマンドを実行します:
stringer -type=Planet
このコマンドは、現在の作業ディレクトリにファイル Planet_string.go を作成します。生成された関数。この関数を使用して、惑星名を文字列として取得できるようになりました。
さらに、構造体ベースまたは文字列ベースの定数の使用を検討できます。これらのアプローチではラベルを一度再入力する必要がありますが、特定のシナリオでは柔軟性が高まります。
以上がString() 関数を使用せずに Go Enum 名を取得する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。