以戈尔姆为单位动态获取字段的大小



我正在寻找一种从GORM模型动态获取字段大小的方法。

一个明显的用例是,当您想要验证对象中的数据保存不超过GORM模型的定义,因此不超过DB列的大小。

type MyStruct struct {
field1 string `gorm:"size:10"`
}

func main(){
s := MyStruct {field1: "abcdefghijklmnopqrstuvwxyz"}  // len 26 > 10 

// if len(s.field1) < ...
db.Create(&s)  // This will panic
}

是否有一种方法可以在运行时获得值10?

使用reflect包我们可以!

文档:https://golang.org/pkg/reflect/StructTag

使用给定示例编写代码:https://play.golang.org/p/1tmvU2eTkHJ

最新更新