doumao1047 2018-08-05 14:51
浏览 129
已采纳

如何直接使用golang反射f.Type()==“ string”?

Full code is here: https://pastebin.com/xC1uQVBC

   type UDD struct {
                        A string //content = "John"
                        B string //content = "Male"
                        C string //content = "12345678"
                        D int64 //content = ""
                        E uint64 //content = ""
                        Z string //content = "FIrst time user"
   }


    reflect_UDD := reflect.ValueOf(&UDD).Elem()
    typeOf_UDD := reflect_UDD.Type()




    for i := 0; i < reflect_UDD.NumField(); i++ {
           f := reflect_UDD.Field(i)

           if(f.Type()==reflect.TypeOf("string")){ 
                //i would like to f.Type()=="string" directly... 
                //how is this possible and also for uint64 and int64 etc
           }
     }

Basically, I would like to do something along the lines of

f.Type()=="string"

or

f.Type()=="uint64"

or

f.Type()=="int64"

directly instead

  • 写回答

3条回答 默认 最新

  • duanluanhui8348 2018-08-06 06:51
    关注

    Change f.Type() to f.Kind(), then use reflect Type to do judgement, supported types could be found https://godoc.org/reflect#Kind. please see full example https://play.golang.org/p/Zydi7t3UBNJ

          switch f.Kind() {
        case reflect.Int64:
            fmt.Println("got int64")
        case reflect.String:
            fmt.Println("got string")
        case reflect.Uint64:
            fmt.Println("got Unit64")
        default:
            fmt.Println("found nothing")        
       }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗