如果我有這樣的旅途中類型:打印圍棋類型忽略「字符串()字符串」方法
type myType ...
func (m myType) String() string { ... }
我怎麼能打印(使用各種fmt
功能)這類使用默認的表示(那就是,而不是叫String()
)?我想要做的是這樣的:
func (m myType) String() string {
// some arbitrary property
if myType.isValid() {
// format properly
} else {
// will recurse infinitely; would like default
// representation instead
return fmt.Sprintf("invalid myType: %v", m)
}
}
這是Effective Go中的內容。 OP應該將該值轉換爲基礎類型,然後使用'%v'格式。看到我的答案。 – 2014-09-24 14:52:01
@ Ainar-G對於類型別名,您的答案很簡單,但對於例如'輸入myType struct {myOtherType}'。 Effective Go中似乎也沒有任何內容表明%#v不是OP想要的。 – nos 2014-09-24 15:09:24
你是對的,編輯我的答案。 – 2014-09-24 15:18:11