Golang
Validator 资料验证
如果我们有需要做资料或者数据相关的检验,我们可以考虑使用validator,跟先前一样,需要先在终端机使用go get取得该套件,然後在import引用该套件。
直接上个范例程序码来瞧瞧
package main
import (
"fmt"
"github.com/go-playground/validator"
)
type User struct {
Username string `validate:"min=4,max=10"`
Age uint8 `validate:"gte=1,lte=10"`
Sex string `validate:"oneof=female male"`
}
func main() {
validate := validator.New()
user1 := User{Username: "tom", Age: 11, Sex: "null"}
err := validate.Struct(user1)
if err != nil {
fmt.Println(err)
}
user2 := User{Username: "Annabelle", Age: 8, Sex: "male"}
err = validate.Struct(user2)
if err != nil {
fmt.Println(err)
}
}
执行起来会得到
Key: 'User.Username' Error:Field validation for 'Username' failed on the 'min' tag
Key: 'User.Age' Error:Field validation for 'Age' failed on the 'lte' tag
Key: 'User.Sex' Error:Field validation for 'Sex' failed on the 'oneof' tag
从字面上来理解看看发生了什麽事情
User.Username 不符合min的规范
User.Age 不符合lte的规范
User.Sex 不符合oneof的规范
那我们可以设定那些规则呢?
所以回来看刚刚的code
Username string `validate:"min=4,max=10"`
Age uint8 `validate:"gte=1,lte=10"`
Sex string `validate:"oneof=female male"`
Username 最小是4 最大是10
Age 必须大於等於1,小於等於10
Sex 必须是male和female其中一个
<<: 网页命名规则-30天学会HTML+CSS,制作精美网站
>>: Day10:【TypeScript 学起来】只有 TS 才有的型别 : any / unknow / void / never
前情提要 前几天帮艾草整理了爱情灵药秘方。 「咦,爱情灵药的秘方也太简单了吧,我还以为会很特别呢?」...
树的高度(height of the tree) 在Binary Search tree中,我们知道...
React 事件处理 React 和 HTML 事件处理的语法略有不同: HTML 的事件语法: &...
swift 画面有了~功能也有了~ 接下来我们做个小动画 我们试着让小鸡在画面中跳起来 整个APP ...
但市面上的裸机Hyperviser还有其他选择(ESXI, Proxmox VE…),为何独锺unR...