这些各种验证库如何将这种元数据添加到以下结构中:
type Post struct {
Title string `valid:"alphanum,required"`
Message string `valid:"duck,ascii"`
AuthorIP string `valid:"ipv4"`
Date string `valid:"-"`
}
我很困惑,属性是标题,类型是字符串。除此之外,您如何只添加
valid:"alphanum,required"
这是使用反射吗?这就像其他语言中的属性吗?
[Required]
public int Title { get;set; }
最佳答案
Go没有一般意义上的属性。结构中的字符串是struct tags:
您不能添加或更改它们,但是可以使用 reflect
软件包来访问它们。
看起来像属性的另一件事是“魔术注释”,例如
// +build amd64
或者
//go:noinline
这些是特定于编译器的,并且IIRC并非语言规范的一部分。
关于validation - Golang是否允许使用元数据或属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35205421/