当前位置: > > > > Printf 函数以不同方式显示结构
来源:stackoverflow
2024-04-25 21:39:38
0浏览
收藏
偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《Printf 函数以不同方式显示结构》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!
问题内容
我正在使用 regex 包的编译函数,它返回 regexp 结构的指针,并在 printf 函数中传递结构,仅显示字符串而不是整个结构。
package main import ( "fmt" "regexp" ) func main() { reg, _ := regexp.compile(`[0-9a-f]+`) fmt.printf("%+v \n", reg) } // output [0-9a-f]+
但是当我创建自己的结构并用一些值初始化并打印它时,它会显示完整的结构。我不明白这里的概念。
package main import ( "fmt" ) type Exp struct { a string b int } func main() { x := &Exp{"akash", 12} fmt.Printf("%+v \n", x) } // Output: &{akash 12}
解决方案
类型实现 接口,这是 fmt.Print*
方法中使用的默认动词。
这意味着它在第一个示例中进行格式化时会调用 reg.String()
。
在第二个示例中,您的自定义类型 Exp
没有此类方法,因此它使用结构的默认 Go 格式。
今天关于《Printf 函数以不同方式显示结构》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注公众号!