在阅读了一些关于它的文档后,我试图通过 go 接口使用一些依赖注入。
我有两种方法应该实现一个接口
type Shooter interface {
Spec(ev v1alpha1.Ev) (v1beta1.Shoot, error)
}
type Project struct {
Name string
}
https://github.com/JennyMet/testint/blob/master/internal/infra/common.go#L8
具体实现在这里 https://github.com/JennyMet/testint/blob/master/internal/infra/azure/azure.go#L13 https://github.com/JennyMet/testint/blob/master/internal/基础设施/gcp/gcp.go#L13
例如
func (n Project) Spec(ev v1alpha1.Ev) (v1beta1.Shoot, error) {
var shoot = v1beta1.Shoot{}
fmt.Println(shoot, ev)
return shoot, nil
}
现在我想在上面的包中获得具体的实现,我尝试了以下
https://github.com/JennyMet/testint/blob/master/internal/infra/provider.go#L16
func kind(ev v1alpha1.Ev, namespace string) (v1beta1.Shoot, error) {
var shoot v1beta1.Shoot
var e error
switch ev.Spec.Infrastructure.Type {
case "gcp":
project := gcp.Project{Name: namespace}
shoot, e = project.Spec(ev)
if e != nil {
return v1beta1.Shoot{}, e
}
但这不起作用,有什么想法我该怎么做吗?
一只甜甜圈
相关分类