28 lines
625 B
Go
28 lines
625 B
Go
|
package basic
|
|||
|
|
|||
|
import "reflect"
|
|||
|
|
|||
|
func GetLangString(param any) string {
|
|||
|
// 获取参数的反射值
|
|||
|
value := reflect.ValueOf(param)
|
|||
|
|
|||
|
// 如果参数是指针,则获取指针指向的值
|
|||
|
if value.Kind() == reflect.Ptr {
|
|||
|
value = value.Elem()
|
|||
|
}
|
|||
|
|
|||
|
// 如果参数是结构体
|
|||
|
if value.Kind() == reflect.Struct {
|
|||
|
// 通过字段名获取字段值
|
|||
|
langField := value.FieldByName("Lang")
|
|||
|
|
|||
|
// 如果字段存在并且是字符串类型
|
|||
|
if langField.IsValid() && langField.Kind() == reflect.String {
|
|||
|
return langField.String()
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 如果无法获取有效的字符串值,则返回zh_cn
|
|||
|
return "zh_cn"
|
|||
|
}
|