类型定义是否有助于分配受限制的值?

在以下结构类型中:


type Employee struct {

    Name         string          `json:"name"`

    JobTitle     JobTitleType    `json:"jobtitle"`

}

成员应确保具有字符串类型的受限(特定)值)。JobTitle


type JobTitleType string


const(

     GradeATitle JobTitleType = "Clerk"

     GradeBTitle JobTitleType = "Manager"

)

类型定义() 是否有助于将受限值分配给成员?JobTitleTypeJobTitle


蓝山帝景
浏览 123回答 3
3回答

万千封印

不。您可以为作业标题分配任何值:e.JobTitle=JobTitleType("bogus")基于字符串,因此所有字符串值都可以转换为它。JobTitleType可以使用 getter/setter 来强制实施运行时验证。

吃鸡游戏

不,它不会限制值,任何具有类型的值都可以分配给 JobTitle。目前,Go 中没有类型。为了限制值,您可能需要编写自己的逻辑。JobTitleTypeenum

白板的微信

否,应在验证逻辑中使用它。例如,具有用于验证的运算符。https://github.com/go-playground/validatoroneOf去没有类型,但你可以做这样的事情enumpackage mainimport (    "fmt")var JobTitleTypes = newJobTitleTypeRegistry()func newJobTitleTypeRegistry() *jobTitleTypeRegistry{    return &jobTitleTypeRegistry{        GradeATitle :  "Clerk",        GradeBTitle : "Manager",    }}type jobTitleTypeRegistrystruct {    GradeATitle string    GradeBTitle string}func main() {    fmt.Println(JobTitleTypes.GradeATitle)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go