2017-08-03 10 views
-4

私が知っている唯一の解決策は、fmt.Sprintまたは類似の機能を使用することです。私はすでにbuiltinパッケージを見ていますが、それはerrorインターフェイスだけを持っています、stringはインターフェイスではなく、通常のタイプです。空のインタフェースでStringメソッドを直接呼び出す方法は?

+0

あなたの目標は何ですか? [stringer](https://golang.org/pkg/fmt/#Stringer)インターフェイスを呼び出していますか?特定のものを提供できますか? – jeevatkm

+0

@jeevatkmストリンガーが私が探しているものです。ありがとうございました! 'fmt.Sprint'を呼び出すのはエレガントではないと思います。 – UltimaWeapon

+0

空のインターフェイスに_no_メソッドがあるため、できません。 – Volker

答えて

0

@volkerと同様です。空のインターフェイスにはメソッドがないため、できません。

注意:fmt.Sprint,などは、存在する場合は最初にStringerインターフェイスを呼び出します。それはエレガントな方法です。

タイプアサーションの後にストリンガーインターフェイスを呼び出す例。

var a SomeType 
if v, ok := a.(fmt.Stringer); ok { 
    fmt.Println(v.String()) 
} 
関連する問題