为了账号安全,请及时绑定邮箱和手机立即绑定

即使该结构具有默认字符串表示形式,也要打印结构的所有属性?

即使该结构具有默认字符串表示形式,也要打印结构的所有属性?

Go
宝慕林4294392 2022-01-17 10:16:00
通常,我可以使用以下命令打印对象的所有属性:c.Infof("car: %+v", car)但是一个结构有一个String()方法。我认为这会导致上面的行只打印String()方法返回的内容。如何覆盖它并强制打印该结构的所有属性?
查看完整描述

1 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

一个简单的解决方法是使用%#v动词:


package main


import (

    "fmt"

)


type someStruct struct {

    a int

    b int

}


func (someStruct) String() string {

    return "this is the end"

}


func main() {

    fmt.Printf("%+v\n", someStruct{1, 2})

    fmt.Printf("%#v\n", someStruct{1, 2})

}

这打印:


this is the end

main.someStruct{a:1, b:2}


查看完整回答
反对 回复 2022-01-17
  • 1 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号