Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何在空接口上直接调用String方法?_Go - Fatal编程技术网

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()
。这样的标题就很容易引起误解。