登录
首页 >  Golang >  Go问答

创造自定义数据类型

来源:stackoverflow

时间:2024-03-14 10:12:18 136浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《创造自定义数据类型》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我想在 gorm 中定义一个新类型,如下所示:

type Device struct{
  gorm.Model
  Name string
  Status Status
}

其中 status 的值只能是 okbrokenmissing 之一。显然,我可以为此使用字符串类型,但随后我会允许每个可能的字符串。如何将选项限制为我想要的选项?


解决方案


最简单的事情是这样的:

const (
    statusOk      = "ok"
    statusBroken  = "broken"
    statusMissing = "missing"
)

func isValidStatus(s string) error {
    switch s {
    case statusOk, statusBroken, statusMissing:
        return nil
    }
    return errors.New("Invalid status")
}

var d Device
// your code
// your code
// your code

if err := isValidStatus(d.Status); err != nil {
    // handle error
}
// valid status

终于介绍完啦!小伙伴们,这篇关于《创造自定义数据类型》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>