我有一个访问权限列表:
const (
Everyone = 0
Owner = 1
Administrator = 2
)
还有一个表示Routes的结构:
type Route struct {
Name string
Method string
Pattern string
HandlerFunc http.HandlerFunc
AccessLevel uint64
}
如何限制
AccessLevel
结构的Route
字段值为上面的那些const之一? 最佳答案
施加这种限制的唯一方法是不导出字段,并以任何设置方法进行检查。
type Route struct {
Name string
Method string
Pattern string
HandlerFunc http.HandlerFunc
accessLevel uint64
}
// AccessLevel getter method
func (r Route) AccessLevel() uint64 {
return r.accessLevel
}
// SetAccessLevel setter method
func (r Route) SetAccessLevel(value uint64) error {
if value < 0 || value > 2 {
return errors.New("AccessLevel must be between 0 and 2, inclusive")
}
r.accessLevel = value
return nil
}
关于go - 如何使结构域成为列表中的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42433162/