英文:
Composition of interfaces in Go
问题
有没有办法在Go语言中使一个接口包含另一个接口定义的方法?
例如:
type BasicDatabase interface {
CreateTable(string) error
DeleteTable(string) error
}
type SpecificDatabase interface {
BasicDatabase
CreateUserRecord(User) error
}
我想要一种方式来指定SpecificDatabase
接口包含BasicDatabase
接口。类似于Go语言允许你对结构体进行组合的方式。
这样,我的方法可以接受实现了SpecificDatabase
接口的类型,并在其上调用CreateTable()
方法。
英文:
Is there a way to make an interface also include the methods defined by another interface in Go?
For example:
type BasicDatabase interface {
CreateTable(string) error
DeleteTable(string) error
}
type SpecificDatabase interface {
CreateUserRecord(User) error
}
I would like a way to specify that the SpecificDatabase
interface contains the BasicDatabase
interface. Similar to the way Go lets you do composition of structs.
This way my methods can take a type that implements SpecificDatabase
, but still call CreateTable()
on it.
答案1
得分: 26
这可以通过与组合结构体时相同的方式来完成。
type BasicDatabase interface {
CreateTable(string) error
DeleteTable(string) error
}
type SpecificDatabase interface {
BasicDatabase
CreateUserRecord(User) error
}
英文:
This can be done the same way as when composing structs.
type BasicDatabase interface {
CreateTable(string) error
DeleteTable(string) error
}
type SpecificDatabase interface {
BasicDatabase
CreateUserRecord(User) error
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论