登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-25 21:39:38 325浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《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}

解决方案


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

这意味着它在第一个示例中进行格式化时会调用 reg.String()

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

今天关于《Printf 函数以不同方式显示结构》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>