1
我知道golang的習慣沒有setter和getter。但是我需要限制Golang的變量值。
我定義的新類型
type MyNewStringType string
和變量,這被定義爲MyStringType,需要限制值。
MyStringType的變量只能有3個值: 「是」,「否」,「我不知道」
我怎樣才能做到這一點在Golang? 在Java中,C++我有setter和getter,但在Golang中並不正常。
我知道,我可以創造
type MyNewStringType struct {
Variable string
}
,並創建
func(m *MyNewStringType) SetVariable(newVar string) error {
if newVar == "Yes" || newVar == "No" || newVar == "I don't know" {
m.Variable = newVar
return nil
} else {
return errors.New("Wrong value")
}
但我認爲這是錯誤的方式。
我相信這是正確的方式。只需製作可變小寫字母,以便在包裝外不可訪問。 –
[Golang:創建常量類型並限制類型的值]的相關/可能的重複(http://stackoverflow.com/questions/37385007/golang-creating-a-constant-type-and-restricting-the-types-值)。 – icza
你可能想看看這個http://stackoverflow.com/questions/14426366/what-is-an-idiomatic-way-of-representing-enums-in-go –