首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在控制台中打印结构变量?

如何在控制台中打印结构变量?
EN

Stack Overflow用户
提问于 2014-07-01 21:57:19
回答 22查看 460.1K关注 0票数 530

如何(在控制台中)在Golang中打印此结构的IdTitleName等?

代码语言:javascript
复制
type Project struct {
    Id      int64   `json:"project_id"`
    Title   string  `json:"title"`
    Name    string  `json:"name"`
    Data    Data    `json:"data"`
    Commits Commits `json:"commits"`
}
EN

回答 22

Stack Overflow用户

发布于 2015-12-27 19:33:28

我想推荐go-spew,根据他们的github的说法,它“为Go数据结构实现了一个非常漂亮的深度打印机,以帮助调试”。

代码语言:javascript
复制
go get -u github.com/davecgh/go-spew/spew

使用示例:

代码语言:javascript
复制
package main

import (
    "github.com/davecgh/go-spew/spew"
)

type Project struct {
    Id      int64  `json:"project_id"`
    Title   string `json:"title"`
    Name    string `json:"name"`
    Data    string `json:"data"`
    Commits string `json:"commits"`
}

func main() {

    o := Project{Name: "hello", Title: "world"}
    spew.Dump(o)
}

输出:

代码语言:javascript
复制
(main.Project) {
 Id: (int64) 0,
 Title: (string) (len=5) "world",
 Name: (string) (len=5) "hello",
 Data: (string) "",
 Commits: (string) ""
}
票数 177
EN

Stack Overflow用户

发布于 2018-07-11 00:24:49

我的2cents是使用json.MarshalIndent --令人惊讶的是没有人建议这样做,因为它是最简单的。例如:

代码语言:javascript
复制
func prettyPrint(i interface{}) string {
    s, _ := json.MarshalIndent(i, "", "\t")
    return string(s)
}

没有外部的dep和结果,输出格式很好。

票数 153
EN

Stack Overflow用户

发布于 2017-03-29 16:53:50

如果您想要struct的某种格式化输出,我认为实现自定义字符串会更好

例如

代码语言:javascript
复制
package main

    import "fmt"

    type Project struct {
        Id int64 `json:"project_id"`
        Title string `json:"title"`
        Name string `json:"name"`
    }

    func (p Project) String() string {
        return fmt.Sprintf("{Id:%d, Title:%s, Name:%s}", p.Id, p.Title, p.Name)
    }

    func main() {
        o := Project{Id: 4, Name: "hello", Title: "world"}
        fmt.Printf("%+v\n", o)
    }
票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24512112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档