如何直接在空接口上调用String方法?

时间:2017-08-03 04:39:46

标签: go

我所知道的唯一解决方案是使用fmt.Sprint或类似功能。我已经查看builtin包但它只有error接口,string只是普通类型,而不是接口。

1 个答案:

答案 0 :(得分:0)

正如@volker所说;你不能因为空接口没有方法。

请注意:fmt.Sprintfmt.Sprintf等会先调用Stringer接口(如果存在)。它很优雅。

类型断言后调用stringer接口的示例。

var a SomeType
if v, ok := a.(fmt.Stringer); ok {
    fmt.Println(v.String())
}