我有两个界面:
type Request interface {
Version() string
Method() string
Params() interface{}
Id() interface{}
}
type Responder interface {
NewSuccessResponse() Response
NewErrorResponse() Response
}
我想创建一个RequestResponder
接口,它结合了这两个接口。这是可能的,还是我必须创建一个包含所有6个函数的第三个接口?
答案 0 :(得分:1)
允许使用界面嵌入,如spec:
中所述接口
T
可以使用(可能合格的)接口类型名称E
来代替方法规范。这在E
中称为嵌入接口T
;它将E
的所有(导出和非导出)方法添加到接口T
。
这是在Go的标准库中完成的(一个例子是io.ReadCloser
)。
在您的问题中,RequestResponder
将构建为:
type RequestResponder interface {
Request
Responder
}