如何在 Go 结构体标签内转义反引号

Vic*_*fei 5 go

我想在 Go struct 标签中转义反引号。例如在下面的代码中:

type User struct {
   email string `validate: "regexp=`"`
   password string `validate: "min=8"`

}

Run Code Online (Sandbox Code Playgroud)

Mar*_*arc 7

您可以使用常规引号。您只需要转义更多字符,尤其是结构标记的 value 部分周围的引号。

type User struct {
   Email string "validate:\"regexp=`\""
   Password string `validate:"min=8"`
}
Run Code Online (Sandbox Code Playgroud)

并通过反射验证标签值:

func main() {
  s := reflect.ValueOf(&User{}).Elem()
  fmt.Println(s.Type().Field(0))
}
Run Code Online (Sandbox Code Playgroud)

输出:

{Email  string validate:"regexp=`" 0 [0] false}
Run Code Online (Sandbox Code Playgroud)