У меня вопрос о типах констант, которые ограничены определенными значениями и как вы это достигаете в Голанге. Скажем, я создаю тип unary
, который имеет два постоянных значения Positive(1)
и Negative(-1)
, и я хочу ограничить пользователя этого типа (unary
) от создания других значений типа unary
. Достигаю этого, создавая пакет и делая видимыми значения Positive
и Negative
и ограничивая тип unary
содержимым пакетом? См., Например, код ниже
package unary
type unary int////not visible outside of the package unary
const (
Positive unary = 1//visible outside of the package unary
Negative unary = -1//visible outside of the package unary
)
func (u unary) String() string {//visible outside of the package unary
if u == Positive {
return "+"
}
return "-"
}
func (u unary) CalExpr() int {//visible outside of the package unary
if u == Positive {
return 1
}
return -1
}
Это правильный способ ограничить тип определенными константными значениями?