刚学 Go 不久, 利用 Go 的反射写了个打印结构体的小项目,不知道有没有前辈能够指点一二 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
szyp
0.08D
V2EX    Go 编程语言

刚学 Go 不久, 利用 Go 的反射写了个打印结构体的小项目,不知道有没有前辈能够指点一二

  •  
  •   szyp 2021-12-31 13:19:12 +08:00 3129 次点击
    这是一个创建于 1470 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看我之前的发帖,我个人是比较喜欢搞这种结构化输出的小把戏

    +----------+--------------------+---------------------------+ |ROOT |KEY |VALUE | +----------+--------------------+---------------------------+ | |Name |xxx | | |Age |18 | | |Address |xxx | +----------+--------------------+---------------------------+ 

    可以将结构体打印成一个小表格,主要是为了 log 好看,本来使用 gist 就可以了,但是 Go 的库管理还挺方便,就建了个项目

    Github 上已经有类似的 table 库可以做这种事情,但是我觉得太大了,hhh 就自己写了一个练练手

    Demo https://github.com/runningzyp/GoStruct2Table

    5 条回复    2021-12-31 17:02:42 +08:00
    duanquanyong
        1
    duanquanyong  
       2021-12-31 13:30:42 +08:00
    你的超级链接点击会跳到本贴地址
    szyp
        2
    szyp  
    OP
       2021-12-31 13:48:07 +08:00
    @duanquanyong 我找不到附言了 hhh 地址在这里 https://github.com/runningzyp/GoStruct2Table
    SSang
        3
    SSang  
    /div>   2021-12-31 14:34:19 +08:00
    还行吧,看你只写了 string/int 这些很简单的,struct ,slice ,map 都不支持

    go 的反射项目可以参考一下 jinzhu/configor ,学一学怎么用递归。

    然后 table 你自己的实现漏洞也很多,而且实现方式也不够优雅,rodaine/table 这个项目可以参考。
    szyp
        4
    szyp  
    OP
       2021-12-31 15:05:33 +08:00
    @SSang #3 芜湖,竟然回复了这么多,感谢指导,我去看看,感谢感谢
    encro
        5
    encro  
       2021-12-31 17:02:42 +08:00
    这时候不经意就想起了,rust:

    println("{:#?}",any);
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2508 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 01:29 PVG 09:29 LAX 17:29 JFK 20:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86