gpt4 book ai didi

debugging - 打印 golang 结构时如何忽略 String() 方法?

转载 作者:IT王子 更新时间:2023-10-29 01:17:17 26 4
gpt4 key购买 nike

我有一个 golang 结构体,并创建了一个 String() 方法用于程序的正常运行。我现在想查看结构的全部内容。我尝试了通常的 %+v 格式,但它似乎使用了 String() 方法,而不是向我显示所有字段。如何输出原始结构数据?

示例:https://play.golang.org/p/SxTVOtwVV-9

package main

import (
"fmt"
)

type Foo struct {
Jekyl string
Hyde string
}

func (foo Foo) String() string {
return foo.Jekyl // how I want it to show in the rest of the program
}

func main() {
bar := Foo{Jekyl: "good", Hyde: "evil"}
fmt.Printf("%+v", bar) // debugging to see what's going on, can't see the evil side
}

输出

good

但我想看看你在没有实现 String() 方法的情况下得到了什么

{Jekyl:good Hyde:evil}

最佳答案

使用%#v格式

fmt.Printf("%#v", bar)

输出:

main.Foo{Jekyl:"good", Hyde:"evil"}

引用 https://stackoverflow.com/a/26116578/10245

https://play.golang.org/p/YWIf6zGU-En

关于debugging - 打印 golang 结构时如何忽略 String() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com