Это то, что вам нужно?
package main
import (
"text/template"
"os"
)
func main() {
t := template.Must(template.New("").Parse(`{{- range .}}{{.}}:
echo from {{.}}
{{end}}
`))
t.Execute(os.Stdout, []string{"target1", "target2", "target3"})
}
Вывод:
target1:
echo from target1
target2:
echo from target2
target3:
echo from target3
Ссылка: https://golang.org/pkg/text/template/
Обновление:
Если вы хотите использовать конвейер в качестве карты и хотите использовать значение из значения соответствующего ключа, тогда:
package main
import (
"text/template"
"os"
)
func main() {
t := template.Must(template.New("").Parse(`{{- range $key, $val := .}}{{$key}}:
echo from {{$val}}
{{end -}}
`))
t.Execute(os.Stdout, map[string]string{"target1": "foo1", "target2": "bar2", "target3": "baz"})
}
Вывод:
target1:
echo from foo1
target2:
echo from bar2
target3:
echo from baz