Как создать универсальную функцию для разных типов в Голанге - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть некоторый код на golang, который подключается к кластеру Kubernetes и печатает список модулей и список конфигураций.

Ниже представлены две похожие функции:

func (k *kubeEntity) getpods(ns string, cs kubernetes.Clientset) {
  pods, err := cs.CoreV1().Pods(ns).List(metav1.ListOptions{})
  if err != nil {
    panic(err.Error())
  }
  for i, pod := range pods.Items {
    fmt.Println(i, ":", pod.Name, "|", pod.Status.Phase)

  }
}
func (k *kubeEntity) getcm(ns string, cs kubernetes.Clientset) {
  cms, err := cs.CoreV1().ConfigMaps(ns).List(metav1.ListOptions{})
  if err != nil {
    panic(err.Error())
  }
  for i, cm := range cms.Items {
    fmt.Println(i, ":", cm.Name)
  }
}

Какя могу написать одну глобальную / универсальную функцию, которая будет выполнять задачу в обоих случаях?

Заранее спасибо

1 Ответ

0 голосов
/ 28 февраля 2019

На данный момент нет генериков в go http://golang.org/doc/faq#generics.

Предполагается, что они появятся в go 2.0, вы можете увидеть отзывы об генериках в черновой версии здесь: https://github.com/golang/go/wiki/Go2GenericsFeedback

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...