String() 関数を使用せずに Go Enum 名を取得する方法は?

DDD
リリース: 2024-11-27 09:10:09
オリジナル
287 人が閲覧しました

How to Get Go Enum Names Without a String() Function?

String() 関数を使用せずに列挙名を取得する方法?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート