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」完全一樣。有減少重複代碼的好方法嗎?例如。定義一次函數並將其分配給三個結構?