gpt4 book ai didi

string - 如何在 golang 中拆分长结构标签?

转载 作者:IT王子 更新时间:2023-10-29 01:40:50 27 4
gpt4 key购买 nike

假设我有以下结构,其中 valid 用于使用每个验证器的自定义消息验证结构(特别是 govalidator )。

type Login struct {
Email string `json:"email" valid:"required~Email is required,email~The email address provided is not valid"`
Password string `json:"password" valid:"required~Password is required,stringlength(6|40)~Password length must be between 6 and 40"`
}

添加几个验证器后,行太长且不可维护。

我想拆分成新行但是 not supported by go并且与 reflect.StructTag.Get 不兼容.

然而,根据我的测试,验证器可以使用多行结构标签,但 vet 失败。

简而言之,拆分长结构标签的正确方法是什么?

最佳答案

如您所述,StructTag.Get() 预期的约定 不允许在结构标记中使用换行符(如果您不遵循约定,StructTag.Get() 将无法正常工作)。在我看来,将太多内容压缩到单个标签值中。

如果您想存储那么多关于您的结构的元信息,我会将其存储在结构标签之外,由其他结构正确建模,以便可以以类型安全的方式访问/处理它们。

如果您别无选择,并且确实需要将那么多信息放入单个标签中,那么您必须在使用方便的 StructTag.Get() 方法之间做出选择,或者省略约定,在结构标签中使用任何你想要的格式,并简单地实现你自己的标签解析逻辑。

关于string - 如何在 golang 中拆分长结构标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51984366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com