structReflect.go
package utils
import (
"reflect"
"regexp"
)
// GetStructTagName 获取struct的field的tag内容
func GetStructTagName(i interface{}, fieldName string) []string {
types := reflect.TypeOf(i)
numField := types.Elem().NumField()
var tagValues = make([]string, numField)
for i := 0; i < numField; i++ {
tagValue := types.Elem().Field(i).Tag.Get(fieldName)
if tagValue == "" {
continue
}
tagValues[i] = tagValue
}
return tagValues
}
// GetStructTagNameRegex 获取struct的field的tag内容,并使用regexp
func GetStructTagNameRegex(i interface{}, fieldName string, regStr string) []string {
reg := regexp.MustCompile(regStr)
types := reflect.TypeOf(i)
numField := types.Elem().NumField()
var tagValues = make([]string, numField)
for i := 0; i < numField; i++ {
tagValue := types.Elem().Field(i).Tag.Get(fieldName)
if tagValue ==