2016-08-26 77 views
0

財產比方說,我有這樣的事情:枚舉爲變量在去

const (
    FOO int = iota 
    BAR 
    BAZ 
) 

,我還可以通過FOOBAR等訪問變量。但是將大量的常量存儲在一個命名空間中並不好,所以我試圖在結構中隱藏這個枚舉或類似的東西,這樣我可以通過在相同的命名空間中鍵入actions.FOO來獲得價值。我嘗試了很多方法,但沒有找到類似的東西。我想提到的最簡單的解決方法,在這種情況下,將是匿名結構,但我想保持與iota自動索引。

+1

可能重複的[GOLANG「Namespaced」枚舉?](http://stackoverflow.com/questions/23459224/golang-namespaced-enums) –

+0

我見過這個問題,但在我的情況下,我寫所有代碼放在一個命名空間中。 –

+0

我能想到的唯一可行解決方案就是Tim提到的問題中的答案。 – AJPennster

回答

0

在不創建我發現的單獨包的情況下,在屬性後面分配某種可枚舉的唯一方法是使用匿名結構。

type someType int 

var ConstantsList = struct { 
    FOO, BAR, BAZ someType 
}{1, 2, 3} 

使用它的缺點很少,它不是不可變的,也沒有自動增量。