微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何访问动态生成的 Go 模板变量的值

如何解决如何访问动态生成的 Go 模板变量的值

对 Go 和使用范围非常陌生。我正在尝试使用范围中的值生成变量名称,并希望获取动态生成的变量的值。这是我的代码

<h1>
  Best Basketball Shoes 2021 – Top 10 Basketball 
  Shoes To Have In 2021
</h1>

<p class="hide">NOVEMBER 13,2020 By IAN DANIEL</p>

当我运行上面的代码时,我得到以下

package main

import (
        "log"
        "os"
        "text/template"
)

type EnvironmentCluster[] struct {
    cluster string
    env     string
}

const tmpl = `
{{$application_configuration := "generic config"}}
{{$application_development_configuration := "dev_config"}}
{{$application_stage_configuration := "stage_config"}}

{{range $cluster,$env := .}}
    {{$config := (printf "application_%s_configuration" $cluster) }}
    Cluster is {{$cluster}},env is {{$env}},config is {{$config}}
{{end}}
`

func main() {
    clusterEnv := map[string]string{
        "development": "dev","stage": "prod",}

        t := template.New("EnvironmentCluster template")

        t,err := t.Parse(tmpl)
        if err != nil {
                log.Fatal("Parse: ",err)
                return
        }

        err = t.Execute(os.Stdout,clusterEnv)
        if err != nil {
                log.Fatal("Execute: ",err)
                return
        }
}

但我的期望是看到 Cluster is development,env is dev,config is application_development_configuration Cluster is stage,env is prod,config is application_stage_configuration 的实际值是这样打印的 -

config

任何帮助/指示?寻找在 go-templates 中访问要在范围内使用的范围外变量的方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。