2
我有一个接口:对于给定的接口,我有三个实现。这三种实现如何共享相同的方法?
type Reader interface {
// Read IV and Master header
ReadMaster(p []byte, full bool) (int, error)
// Read User header
ReadUser(p []byte, full bool) (int, error)
// Read Content data
ReadContent(p []byte) (int, error)
}
而且我有三个struct
S跟接口兼容。所有三个结构都有samve方法ReadUser
。所以我必须这样做:
func (r *s1) ReadUser(buf []byte, full bool) (int, error) {
//.... code 1 ....
}
func (r *s2) ReadUser(buf []byte, full bool) (int, error) {
//.... code 2 ....
}
func (r *s3) ReadUser(buf []byte, full bool) (int, error) {
//.... code 3 ....
}
但是,上面的“code1”,“code2”和“code3”完全一样。有减少重复代码的好方法吗?例如。定义一次函数并将其分配给三个结构?