在同一行写入值

Writes value in the same line

我有以下代码可以生成名称 一个接着一个:

{{- range .File.apps}}

{{ .Name}}

{{- end}}

这会打印出

app1

app2

app3 

问题是我需要在同一行而不是一个接一个

app1 app2 app3

当我尝试跟随它删除第一个条目并仅输入最后一个值时。即我只会得到 app3

{{- range .File.apps}} {{ .Name}} {{- end}}

我该怎么做?

- 字符会阻止换行,因此在结束 }} 之前添加 - 应该可以解决问题。

https://play.golang.org/p/a-P-yPJtm9W

package main

import "fmt"
import "os"
import "text/template"

const temp = `
{{- range .Apps -}}
{{- .Name -}}
{{- end -}}
`

type file struct {
    Apps []app
}

type app struct {
    Name string
}

func main() {
    data := file{
        Apps: []app{
            app{"foo"}, 
            app{"bar"},
        },
    }
    t := template.Must(template.New("foo").Parse(temp))

    err := t.Execute(os.Stdout, data)
    if err != nil {
        fmt.Println(err.Error())
    }
}