JSON をデコードするときは、次のように親構造体の個々のオブジェクトに Stringer インターフェイスを実装できるように、常に各オブジェクトの構造体を明示的に記述しました。
type Data struct {
Records []Record
}
type Record struct {
ID int
Value string
}
func (r Record) String() string {
return fmt.Sprintf("{ID:%d Value:%s}", r.ID, r.Value)
}
最近、無名構造体をネストできることを知りました。このメソッドは、デコードされるデータの構造を定義するためにより簡潔です。
type Data struct {
Records []struct {
ID int
Value string
}
}
しかし、構造体のメンバー、特に匿名構造体のメンバーでメソッドを定義することは可能ですか? 最初のコード ブロックの Stringer インターフェイスの実装と同様です。