如何在golang中为不同类型创建泛型函数

时间:2019-02-28 13:09:10

标签: go

我在golang中有一些代码,该代码连接到Kubernetes集群并打印Pod列表和configmaps列表。

以下是两个类似的功能:

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 :(得分:-1)

目前http://golang.org/doc/faq#generics中没有通用名称。

它应该在go 2.0中出现,您可以在此处的草案版本中看到泛型的反馈:https://github.com/golang/go/wiki/Go2GenericsFeedback