在 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中文網其他相關文章!