登录
首页 >  Golang >  Go问答

验证结构的惯用方法

来源:Golang技术栈

时间:2023-05-01 10:43:17 200浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《验证结构的惯用方法》,介绍一下golang,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我需要验证结构值是否正确,这意味着我需要单独检查每个字段,这对于少数小型结构来说很容易,但我想知道是否有更好的方法来做到这一点。这就是我现在的做法。

type Event struct {
    Id     int
    UserId int
    Start  time.Time
    End    time.Time
    Title  string
    Notes  string
}

func (e Event) IsValid() error {
    if e.Id 

这是验证结构中字段值的惯用方法吗?看起来很麻烦。

正确答案

我没有看到任何其他方法可以快速做到这一点。但我找到了一个可以帮助你解决这个问题的 go 包:https ://github.com/go- validator/validator

自述文件给出了这个例子:

type NewUserRequest struct {
    Username string `validator:"min=3,max=40,regexp=^[a-zA-Z]$"`
    Name string     `validator:"nonzero"`
    Age int         `validator:"min=21"`
    Password string `validator:"min=8"`
}

nur := NewUserRequest{Username: "something", Age: 20}
if valid, errs := validator.Validate(nur); !valid {
    // values not valid, deal with errors here
}

好了,本文到此结束,带大家了解了《验证结构的惯用方法》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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