Go 在戈兰,为什么可以';“我比较[]”;k8s.io/api/core/v1";。服务港?

Go 在戈兰,为什么可以';“我比较[]”;k8s.io/api/core/v1";。服务港?,go,Go,newService和checkservice都是corev1.service{} 控制器/grafana_控制器。转到:122:23:无效操作:checkservice.Spec!=newService.Spec(包含[]“k8s.io/api/core/v1.ServicePort”的结构无法比较)包含映射或切片的结构不可比较: 您必须手动比较这些,或者使用reflect.DeepEqual这是编写最小可验证示例的绝佳机会。这是一个纯粹的戈朗问题 newService := service

newService和checkservice都是corev1.service{}


控制器/grafana_控制器。转到:122:23:无效操作:checkservice.Spec!=newService.Spec(包含[]“k8s.io/api/core/v1.ServicePort”的结构无法比较)

包含映射或切片的结构不可比较:


您必须手动比较这些,或者使用
reflect.DeepEqual

这是编写最小可验证示例的绝佳机会。这是一个纯粹的戈朗问题
newService := serviceforgrafana(grafana)
    if checkservice.Spec != newService.Spec {
        checkservice.Spec = newService.Spec
        if err := r.Update(context.TODO(), checkservice); err != nil {
            return ctrl.Result{}, err
        }
    }