为了账号安全,请及时绑定邮箱和手机立即绑定

在 go lang 的另一个函数中使用一个函数的变量

在 go lang 的另一个函数中使用一个函数的变量

Go
墨色风雨 2022-05-18 09:41:18
   package mainimport (   "encoding/json"  // "flag"    //"fmt"    "strconv"  "html/template"  "time"  // "log"  "strings"  "net/http"  "k8s.io/apimachinery/pkg/apis/meta/v1"  "k8s.io/client-go/kubernetes"  "k8s.io/client-go/tools/clientcmd")type microservice_details struct{  Deployment_name string `json:"Deployment_name"`  Namespace string        `json:"Namespace"`  Image_tag string}type namespace_details struct {     Namespace []string }var templates = template.Must(template.ParseGlob("./*.html"))var label_name stringvar namespace stringvar microservice ="/microservice/"var detailed_view="/detailed/"var kube_config_path="/home/saivamsi/.kube/config"var config, _ = clientcmd.BuildConfigFromFlags("", kube_config_path)var clientset, _ = kubernetes.NewForConfig(config)func main() {  templates = template.Must(template.ParseGlob("./*.html"))  http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))      http.Handle("/jpeg/", http.StripPrefix("/jpeg/", http.FileServer(http.Dir("css"))))      http.HandleFunc("/", homepage)      http.HandleFunc(microservice, Deployment)      http.ListenAndServe(":8801",nil)}func homepage(w http.ResponseWriter, r *http.Request){  namespace,_:=clientset.CoreV1().Namespaces().List(v1.ListOptions{})  namespace_tmp := namespace_details{}                   for _,s := range namespace.Items{             namespace_tmp.Namespace = append(namespace_tmp.Namespace,s.Name)           }           templates.ExecuteTemplate(w,"homepage2.html",namespace_tmp)}如何在部署函数中使用主页函数的命名空间变量。我需要在 go 模板中使用它们。我必须在 microservices.html 中使用该命名空间。我尝试了很多东西但没有奏效。
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

Go使用块在词法范围内。这意味着在函数内声明的任何变量ABC()都不能从其他函数访问Xyz()

如果你需要这样的“共享”,你必须namespace在全局定义变量homepage,或者通过引用传递homepage,然后deployment


查看完整回答
反对 回复 2022-05-18
  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信