golang漂亮地打印一个结构体

func SmartPrint(i interface{}){
    var kv = make(map[string]interface{})
    vValue := reflect.ValueOf(i)
    vType :=reflect.TypeOf(i)
    for i:=0;i<vValue.NumField();i++{
        kv[vType.Field(i).Name] = vValue.Field(i)
    }
    fmt.Println("获取到数据:")
    for k,v :=range kv{
        fmt.Print(k)
        fmt.Print(":")
        fmt.Print(v)
        fmt.Println()
    }
}

func TestSmartPrint(t *testing.T) {
    type User struct {
        Name string
        Id int
    }
    SmartPrint(User{"ft",5})
}

获取到数据:
Name:ft
Id:5

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站大部分内容收集于互联网,如果有侵权内容、不妥之处,请联系删除。敬请谅解!

  Previous post nginx 内置变量
Next post   docker容器ip互通

添加新评论

  关于博主【WANG-FEiHU】

Duplicate
-----------Complicate
--------------------------Appreciate
-----------------------------------------Fate

闻先后,术专攻
三人有师
习得文武艺,货与帝王家
人性不曾变,资本永无眠

-----------花有重开日,人无再少年-----------

  分类目录

  monitor(TD)

在看得见的地方站得直 是因为在看不见的地方站得稳

With great power comes great responsibility :能力越大责任越大。

让你变得更好的那个人,往往是你觉得很难与之相处的那个人

觉得自己做的到和不做的到,其实只在一念之间。

拿破仑波拿巴,他一生打了90%以上的胜仗,你在第一时间想到他一生中最著名的战役是什么?

停止狼狈 让错纯粹。

凡事顺其自然,遇事处于泰然,得意之时淡然,失意之时坦然,艰辛曲折必然,历尽沧桑悟然。