gpt4 book ai didi

go - 如何使结构字段成为列表中的值?

转载 作者:数据小太阳 更新时间:2023-10-29 03:14:00 25 4
gpt4 key购买 nike

我有一个访问权限列表:

const (
Everyone = 0
Owner = 1
Administrator = 2
)

还有一个表示路由的结构体:

type Route struct {
Name string
Method string
Pattern string
HandlerFunc http.HandlerFunc
AccessLevel uint64
}

如何限制 Route 结构的 AccessLevel 字段值只是上面的那些常量之一?

最佳答案

施加此类限制的唯一方法是不导出字段,并在任何 setter 方法中进行检查。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com