透過 iota 實現的 Go 枚舉,缺乏明確的 String() 函數,限制了直接檢索作為字串的枚舉名稱。本文探討了克服此限制並取得枚舉名稱而無需重新輸入標籤的替代方案。
一個可能的解決方案是利用標準工具包中的 stringer 工具。此工具會自動為您的枚舉類型產生 String() 函數。
例如,考慮以下枚舉定義:
const ( MERCURY = 1 VENUS = iota EARTH MARS JUPITER SATURN URANUS NEPTUNE PLUTO )
為此枚舉產生String() 函數,在終端機中執行以下命令:
stringer -type=Planet
該指令會在目前工作目錄下建立檔案planet_string.go,包含產生的功能。該函數現在可用於獲取字串形式的行星名稱。
此外,您可以考慮使用基於結構或基於字串的常數。雖然這些方法需要重新輸入標籤一次,但它們在某些情況下提供了更大的靈活性。
以上是如何在沒有 String() 函數的情況下取得 Go 枚舉名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!