templates - Golang 模板范围换行删除

标签 templates go

我正在尝试找出如何删除模板中由 {{range}} 和 {{end}} 放置的新行。我得到以下没有任何“-”标签的输出:

type {{makeGoTableName .TableName}} struct {
  {{range $key, $value := .TableData}}
    {{makeGoColName $value.ColName}} {{$value.ColType}} `db:"{{makeDBColName $value.ColName}}",json:"{{$value.ColName}}"`
  {{end}}
}

结果:

type Dogs struct {

  ID int64 `db:"id",json:"id"`

  DogNumber int64 `db:"dog_number",json:"dog_number"`

}

如果我像这样添加 - 标签,我可以让它接近理想但它打破了最后一个右大括号的缩进:

type {{makeGoTableName .TableName}} struct {
  {{range $key, $value := .TableData -}}
    {{makeGoColName $value.ColName}} {{$value.ColType}} `db:"{{makeDBColName $value.ColName}}",json:"{{$value.ColName}}"`
  {{end -}}
}

结果:

type Dogs struct {
  ID int64 `db:"id",json:"id"`
  DogNumber int64 `db:"dog_number",json:"dog_number"`
  }

有什么想法吗?

最佳答案

主要是在玩尾随破折号,试试

package main

import (
    "os"
    "text/template"
)

type myGreetings struct {
    Greet []string
}

func main() {
    const txt = `
{
        {{- range $index, $word := .Greet}}
  Hello {{$word -}}!!!
        {{- end}}
}
`
    greetText := myGreetings{
        Greet: []string{"World", "Universe", "Gophers"},
    }
    t := template.Must(template.New("Text").Parse(string(txt)))
    t.Execute(os.Stdout, greetText)

}

https://play.golang.org/p/eGm3d3IJPp

输出:

{
  Hello World!!!
  Hello Universe!!!
  Hello Gophers!!!
}

关于templates - Golang 模板范围换行删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35565915/

相关文章:

javascript - mustache.js 与 jquery-tmpl

c++ - 判断一个类是否有某个成员?

docker - godep 没有安装所需的包

go-remote 不是下载模块而是下载 goget.html

arrays - 我如何在 GoLang 中创建一个可以容纳多种数据类型的数组?

C++ 模板专门化以提供/添加不同的成员函数

c++ - 带有自定义删除器的 std::shared_ptr 的 Typedef 别名

http - go 似乎不尊重持久连接设置

go - 是否可以使用 Google Classroom Go API 来评论事物?

c++ - 从模板值获取类型,C++