golang中的结构体匿名成员
最近在开发caddy的插件, 碰到了很多以前不怎么注意的地方, 先重点记录下几个点. 写插件比较追求的一点是: 如何不破坏原有的体系而达到想要的效果. 这个确实有点难… 结构体匿名成员 有关结构体匿名成员在《Effective Go》中的embedding一节讲的很详细, 一言一蔽之: 另一种形式的继承. 如果B类型中包含了A类型的匿名成员, 则B类型的实例拥有(继承)了所有A类型实现的方法. 看个简单的例子: package main import "fmt" type I interface { Say() Run() } type XXX struct { Name string } func (x XXX) Say() { fmt.Printf("XXX name is: %s\n", x.Name) } func (x XXX) Run() { fmt.Printf("XXX run away\n") } type YYY struct { XXX Age int } func (y YYY) Say() { fmt.Printf("YYY name is: %s, age is: %d\n", y....