2017-08-03 84 views
-4

我知道的唯一解決方案是使用fmt.Sprint或類似的功能。我已經看過builtin包但它只有error接口,string只是一個普通類型,而不是接口。如何直接在空接口上調用String方法?

+0

你的目標是?它是否調用[stringer](https://golang.org/pkg/fmt/#Stringer)接口?你能提供具體的嗎? – jeevatkm

+0

@jeevatkm stringer是我正在尋找。謝謝!我認爲調用'fmt.Sprint'不是一種優雅的方式。 – UltimaWeapon

+0

你不能像空白的接口有_no_方法。 – Volker

回答

0

正如@volker所述;你不能像空接口沒有方法。

請注意:fmt.Sprint,fmt.Sprintf等確實會先調用Stringer接口(如果存在)。這是優雅的方式。

類型斷言後調用stringer接口的示例。

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