gpt4 book ai didi

Golang toString 用于接口(interface)和结构实现

转载 作者:数据小太阳 更新时间:2023-10-29 03:44:48 25 4
gpt4 key购买 nike

我有以下 Go 接口(interface):

type CodeProvider interface {
code() string

}

我已将 CodeProviderImpl 定义如下:

type CodeProviderImpl struct {
errorCode string
}

这是使用“code()”方法对上述 CodeProvider 的实现:

func (cp CodeProviderImpl) code()  string {
log.Info("cp.errorCode: ", cp.errorCode)
return cp.errorCode
}

我在我的另一个结构中使用 codeProvider,如下所示:

type JsonMessage struct {
code CodeProvider
}

我在我的测试用例中这样做:

codeProvider := &CodeProviderImpl { errorCode: "1"}

jm := &JsonMessage{
code: codeProvider
}

现在,当我使用以下代码执行测试时,出现以下错误:

 log.Info("jm.code: ", string(jm.code))

cannot convert jm.code (type CodeProvider) to type string

如何打印 jm.code 的字符串表示形式?

最佳答案

您目前正在尝试将 jm.code(一种 CodeProvider 结构类型)转换为字符串,这不是一个明显的转换。如果您尝试获取 CodeProvider 结构的字符串表示形式,则可以在 fmt.Sprintf() 中使用“%+v”标志。

例子:

log.Info("jm.code: ", fmt.Sprintf("%+v", jm.code))

如果您要做的只是调用 jm.code 代码提供程序中的代码函数来获取代码字符串,那么请使用 jm.code.code()。

关于Golang toString 用于接口(interface)和结构实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56223932/

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