I use a basic template OK until I have a map with key including - such ask {{.vars.X-test}}.
The template will crash. Does anyone ever a solution on this?
code
1.data struct
type Stack struct {
StepResult map[string]interface{}
}
vars := make(map[string]string, paramLen)
stack.StepResult[“vars”] = vars
vars[“X-test”] = “abc”
2.template function
func (stack Stack) QueryFromStepResult(template string) string {
tmpl, _ := template.New(“key”).Parse(template)
buf := new(bytes.Buffer)
tmpl.Execute(buf, stack.StepResult)
return buf.String()
}
3.crash when using function with {{.vars.X-test}}
runtime error: invalid memory address or nil pointer dereference
/usr/bin/go/src/text/template/exec.go:164 (0x9c1fba)
errRecover: panic(e)
/usr/bin/go/src/runtime/panic.go:838 (0x6366a6)
gopanic: done = runOpenDeferFrame(gp, d)
/usr/bin/go/src/runtime/panic.go:220 (0x64c835)
panicmem: panic(memoryError)
/usr/bin/go/src/runtime/signal_unix.go:818 (0x64c805)
sigpanic: panicmem()
/usr/bin/go/src/text/template/exec.go:215 (0x9c23ec)
(*Template).execute: if t.Tree == nil || t.Root == nil {
/usr/bin/go/src/text/template/exec.go:201 (0xb0a1d4)
(*Template).Execute: return t.execute(wr, data)
/code/go/tms-go-apihub/broker/hub/stack.go:26 (0xb0a0a7)
Stack.QueryFromStepResult: tmpl.Execute(buf, stack.StepResult)