我有两个接口:
type Request interface {
Version() string
Method() string
Params() interface{}
Id() interface{}
}
type Responder interface {
NewSuccessResponse() Response
NewErrorResponse() Response
}
Run Code Online (Sandbox Code Playgroud)
我想制作一个RequestResponder结合这两者的界面。这可能吗,还是我必须创建具有所有 6 个功能的第三个界面?
小智 7
允许接口嵌入,如规范中所述:
接口
T可以使用(可能是限定的)接口类型名称E来代替方法规范。这称为嵌入接口;它将所有(导出和非导出)方法添加到接口中。ETET
这是在 Go 的标准库中完成的(一个例子是io.ReadCloser)。
在你的问题中,RequestResponder将被构造为:
type RequestResponder interface {
Request
Responder
}
Run Code Online (Sandbox Code Playgroud)