当前位置: > > > > Printf 函数以不同方式显示结构
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 函数以不同方式显示结构》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注米云公众号!
