golang动态类型转换

时间:2018-07-25 22:20:43

标签: go

摘录自一个片段(此处功能不全面):

type SomeType struct {
    UserEmail   sql.NullString    `db:"user_email"`
    RecID       sql.NullInt64     `db:"rec_id"`
}

for g := 0; g < s.NumField(); g++ {
   f := s.Field(g)
   tType = f.Type().String()

   tType = strings.Replace(tType, `sql.Null`, ``, 1)
   tType = strings.Replace(tType, `mysql.Null`, ``, 1)
   tType = strings.Replace(tType, `decimal.NullDecimal`, `Decimal`, 1)
   tType = strings.Replace(tType, `myTime`, `Time`, 1)

   fmt.Println(g, typeOfT.Field(g).Name, tType, f)
}

对于正常输出,我编写UserEmail.String。如果不存在.String,则输出为:

   UserEmail String {johndoe@somecompany.com true}

如何根据数据类型动态附加.String或.Int64,其中该类型扩展实际上用于产生:

   UserEmail String johndoe@somecompany.com

基本上将字符串“ UserEmail”和“ String”转换为UserEmail.String

谢谢!

0 个答案:

没有答案