みんな!Golangで変数の値を制限するにはどうすればよいですか?
私はゴランの慣用句はセッターとゲッターを持っていないことを知っています。しかし、私はゴランの変数の価値を制限する必要があります。
私は、
type MyNewStringType string
そしてMyStringTypeとして定義された変数は、新しい型を定義された値を制限する必要があります。 は「はい」、「いいえ」、
ははどのように私はGolangでそれを行うことができます 「わからない」:MyStringTypeの
変数は、唯一の3つの値を持つことができますか? Javaでは、私は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 –