golang 友好的数据格式化输出 有要了解一下的嘛

wzshiming · · 325 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang 友好的数据格式化

安装

go get -u -v gopkg.in/ffmt.v1

用法

API 文档

示例

package main

import (
    ffmt "gopkg.in/ffmt.v1"
)

func main() {
    example()
}

func example() {
    m := struct {
        String string
        Int    int
        Slice  []int
        Map    map[string]interface{}
    }{
        "hello world",
        100,
        []int{1, 2, 3, 4, 5, 6},
        map[string]interface{}{
            "A":  123,
            "BB": 456,
        },
    }

    fmt.Println(m) // fmt 默认输出
    /*
        {hello world 100 [1 2 3 4 5 6] map[BB:456 A:123]}
    */

    ffmt.Puts(m) // 较为友好的输出
    /*
        {
         String: "hello world"
         Int:    100
         Slice:  [
          1 2 3
          4 5 6
         ]
         Map: {
          "A":  123
          "BB": 456
         }
        }
    */

    ffmt.Print(m) // 同 Puts 但是字符串不加引号
    /*
        {
         String: hello world
         Int:    100
         Slice:  [
          1 2 3
          4 5 6
         ]
         Map: {
          A:  123
          BB: 456
         }
        }
    */

    ffmt.P(m) // 友好格式化加上类型
    /*
        struct{
         String: string(hello world)
         Int:    int(100)
         Slice:  slice[
          int(1) int(2) int(3)
          int(4) int(5) int(6)
         ]
         Map: map{
          string(A):  int(123)
          string(BB): int(456)
         }
        }
    */

    ffmt.Pjson(m) // 以 json 风格输出
    /*
        {
         "Int": 100
        ,"Map": {
          "A":  123
         ,"BB": 456
         }
        ,"Slice": [
          1,2,3
         ,4,5,6
         ]
        ,"String": "hello world"
        }
    */

    m0 := ffmt.ToTable(m, m) // 按字段拆成表
    ffmt.Puts(m0)
    /*
        [
         [
          "String" "Int"
          "Slice"  "Map"
         ]
         [
          "hello world"   "100"
          "[1 2 3 4 5 6]" "map[A:123 BB:456]"
         ]
        ]
    */

    m1 := ffmt.FmtTable(m0) // [][]string 表格式化
    ffmt.Puts(m1)
    /*
        [
         "String      Int Slice         Map               "
         "hello world 100 [1 2 3 4 5 6] map[A:123 BB:456] "
        ]
    */

    ffmt.Mark("hello") // 标记输出位置
    /*
        main.go:122  hello
    */
}

 

本文来自:Segmentfault

感谢作者:wzshiming

查看原文:golang 友好的数据格式化输出 有要了解一下的嘛

入群交流(和以上内容无关):Go中文网 QQ 交流群:798786647 或加微信入微信群:274768166 备注:入群;关注公众号:Go语言中文网

325 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传