Heim >Backend-Entwicklung >Golang >Go Template ruft Variablen dynamisch ab
Meine YML-Parameter sehen so aus
nodes: one, two instanceminone: 1 instancemaxone: 2 instancemintwo: 4 instancemaxtwo: 6
Gibt es eine Möglichkeit, z. B. „instanceminone“ mithilfe von Go-Vorlagen dynamisch zu lesen, wobei der Variablenname aus + dem dynamischen Wert aus der Knotenliste besteht? instancemin
{{ - range $nodeName := (split .Parameters.nodes) } } } } instance-min: {{ .Parameters.instanceMin$nodeName }} instance-max: {{ .Parameters.instanceMan$nodeName }} {{ - end }}
-Funktion wie print
verwenden
{{ $key := print "instancemin" $nodename }}Für die Indizierung verwenden Sie die integrierte
-Funktion: index
instance-min: {{ index $.parameters $key }}(Hinweis:
bezieht sich auf die Außenseite der Schleifenvariablen.) {{range}}
操作会更改点,因此在其中您需要 $
instance-min: {{ index $.parameters (print "instancemin" $nodename) }}Sehen Sie sich eine funktionierende Demo an:
func main() { t := template.must(template.new("").parse(src)) params := map[string]any{ "parameters": map[string]any{ "nodes": []string{"one", "two"}, "instanceminone": 1, "instancemaxone": 2, "instancemintwo": 4, "instancemaxtwo": 6, }, } if err := t.execute(os.stdout, params); err != nil { panic(err) } } const src = `{{- range $idx, $nodename := .parameters.nodes }} instance-min: {{ index $.parameters (print "instancemin" $nodename) }} instance-max: {{ index $.parameters (print "instancemax" $nodename) }} {{- end }}`Dies wird ausgegeben (versuchen Sie es auf
Go Playground):
instance-min: 1 instance-max: 2 instance-min: 4 instance-max: 6
Das obige ist der detaillierte Inhalt vonGo Template ruft Variablen dynamisch ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!