在解码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接口实现一样。