为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
蓝山帝景 2022-09-05 17:28:20
在以下结构类型中:type Employee struct {    Name         string          `json:"name"`    JobTitle     JobTitleType    `json:"jobtitle"`}成员应确保具有字符串类型的受限(特定)值)。JobTitletype JobTitleType stringconst(     GradeATitle JobTitleType = "Clerk"     GradeBTitle JobTitleType = "Manager")类型定义() 是否有助于将受限值分配给成员?JobTitleTypeJobTitle
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

不。您可以为作业标题分配任何值:

e.JobTitle=JobTitleType("bogus")

基于字符串,因此所有字符串值都可以转换为它。JobTitleType

可以使用 getter/setter 来强制实施运行时验证。


查看完整回答
反对 回复 2022-09-05
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

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

查看完整回答
反对 回复 2022-09-05
?
白板的微信

TA贡献1883条经验 获得超3个赞

否,应在验证逻辑中使用它。例如,具有用于验证的运算符。https://github.com/go-playground/validatoroneOf


去没有类型,但你可以做这样的事情enum


package main


import (

    "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)

}


查看完整回答
反对 回复 2022-09-05
  • 3 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信