在同一行中写入值

时间:2018-06-25 13:36:36

标签: go go-templates

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

{{- range .File.apps}}

{{ .Name}}

{{- end}}

打印

app1

app2

app3 

问题是我需要在同一行中获取它,而不是一个接一个

app1 app2 app3

当我尝试按照以下说明操作时,请删除第一个条目并仅放置最后一个值。即我只会得到app3

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

我该怎么做?

1 个答案:

答案 0 :(得分:0)

-字符可以防止出现新行,因此在结束-之前添加}}应该可以解决问题。

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())
    }
}