Go 如何在空接口上直接调用String方法?
我知道的唯一解决方案是使用Go 如何在空接口上直接调用String方法?,go,Go,我知道的唯一解决方案是使用fmt.Sprint或类似函数。我已经研究了内置的包,但它只有错误接口,字符串只是一个普通类型,而不是@volker提到的接口;由于空接口没有方法,因此不能执行此操作 请注意:fmt.Sprint,fmt.Sprintf等如果存在Stringer接口,则首先调用它。这是一种优雅的方式 类型断言后调用stringer接口的示例 var a SomeType if v, ok := a.(fmt.Stringer); ok { fmt.Println(v.Strin
fmt.Sprint
或类似函数。我已经研究了内置的
包,但它只有错误
接口,字符串
只是一个普通类型,而不是@volker提到的接口;由于空接口没有方法,因此不能执行此操作
请注意:fmt.Sprint
,fmt.Sprintf
等如果存在Stringer接口,则首先调用它。这是一种优雅的方式
类型断言后调用stringer接口的示例
var a SomeType
if v, ok := a.(fmt.Stringer); ok {
fmt.Println(v.String())
}
你的目标是什么?是调用接口吗?你能提供具体的吗?@jeevatkm stringer是我要找的。非常感谢。我认为调用
fmt.Sprint
不是一种优雅的方式。你不能这样做,因为空接口没有方法。@沃尔克我的意思是把它键入Stringer
接口,然后直接调用String()
。这样的标题就很容易引起误解。