首頁 > 後端開發 > Golang > 如何在不編寫明確字串轉換的情況下取得 Go 枚舉名稱?

如何在不編寫明確字串轉換的情況下取得 Go 枚舉名稱?

Barbara Streisand
發布: 2024-12-07 07:45:17
原創
695 人瀏覽過

How Can I Get Go Enum Names Without Writing Explicit String Conversions?

在沒有明確字串轉換的情況下在 Go 中獲取枚舉名稱

在 Go 中,枚舉通常實現為分配整數值的常數。但是,在不明確建立 String() 方法的情況下存取枚舉名稱可能會很麻煩。

考慮以下範例:

const (
    MERCURY = 1
    VENUS = iota
    EARTH
    MARS
    JUPITER
    SATURN
    URANUS
    NEPTUNE
    PLUTO
)
登入後複製

要取得枚舉名稱,可以定義一個 String()每個枚舉值的方法,導致重複重新鍵入或程式碼產生。有替代方案嗎?

使用 Stringer 工具

Go 提供了 stringer 工具,它可以自動為常數建立 String() 方法。透過在與上面程式碼相同的目錄中執行以下命令:

stringer -type=MERCURY
登入後複製

在套件上下文中產生一個新檔案mercury_string.go,包含:

func (MERCURY) String() string
登入後複製

此方法允許方便地檢索枚舉名稱並減少明確字串轉換的需要。

其他注意:

雖然此技術解決了在沒有顯式String() 方法的情況下獲取枚舉名稱的問題,但請記住,它需要使用外部工具,並且在某些情況下可能並不總是可行。

以上是如何在不編寫明確字串轉換的情況下取得 Go 枚舉名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板