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

Printf 函数以不同方式显示结构

Printf 函数以不同方式显示结构

Go
素胚勾勒不出你 2022-06-13 17:26:55
我正在使用正则表达式包的编译函数,它返回正则表达式结构的指针,并在 printf 函数中传递结构显示我只显示字符串而不是整个结构。package mainimport (    "fmt"    "regexp")func main() {    reg, _ := regexp.Compile(`[0-9a-f]+`)    fmt.Printf("%+v \n", reg)}// Output[0-9a-f]+但是当我创建自己的结构并用一些值初始化并打印它时,它会显示完整的结构。我不理解这里的概念。package mainimport (    "fmt")type Exp struct {    a           string     b           int}func main() {    x := &Exp{"akash", 12}    fmt.Printf("%+v \n", x)}// Output: &{akash 12}
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

regexp.Regexp类型实现了fmt.Stringer接口,这是fmt.Print*方法中使用的默认动词。

这意味着它reg.String()在您的第一个示例中格式化时调用。

在您的第二个示例中,您的自定义类型Exp没有这样的方法,因此它使用结构的默认 Go 格式。


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信