在Go 中不使用String() 方法來擷取枚舉名稱
在Go 中,如果不明確定義枚舉名稱,則無法直接檢索枚舉名稱使用String() 方法作為字串值。但是,還有其他方法可以動態定義常數。
1. Stringer Tool
標準工具包提供了 stringer 工具,它可以自動產生枚舉的 String() 方法。透過執行以下命令:
stringer -type=EnumName
在與枚舉定義相同的目錄中,stringer 工具將建立一個包含 String() 方法的定義的檔案。
2.基於結構的枚舉
基於結構的枚舉涉及定義底層枚舉類型並將其嵌入結構中。該結構的每個欄位對應一個枚舉值,並明確地標有其名稱。這種方法的優點是您可以直接存取枚舉值及其名稱。
3.基於字串的枚舉
在基於字串的枚舉中,枚舉值表示為字串。您可以建立一個映射,將每個字串值與相應的常數值關聯起來。這允許您根據枚舉的值以程式設計方式檢索其名稱。
雖然這些方法提供了動態定義常數的替代方法,但它們都要求您明確地重新定義或指定枚舉名稱。因此,在程式碼可重複使用性或易於維護性方面,它們可能不會比傳統的 String() 方法提供顯著的優勢。
以上是如何在不使用 String() 方法的情況下檢索 Go 枚舉名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!