这个问题与Golang 模板范围换行符删除有关,但那里的答案没有解决。
给定
type Data struct {
Item string
IsFruit bool
}
var data = []Data{
{"banana", true},
{"apple", true},
{"onion", false},
{"peach", true}}
var Template = `
FRUITS ONLY
-----------------
{{range .}}{{if .IsFruit}}{{.Item}}{{else}}{{end}}
{{end -}}
-----------------
`
Run Code Online (Sandbox Code Playgroud)
Template执行with的输出在和data之间包含不需要的换行符。applepeach
FRUITS ONLY
-----------------
banana
apple
peach
-----------------
Run Code Online (Sandbox Code Playgroud)
我尝试了{{-和的许多变体,但-}}没有设法抑制换行符。消除{{else}}也行不通。
请注意,对于我的实际应用程序来说,预过滤数据不是一个选项。
完整代码示例位于 https://goplay.space/#N_GyaWwjH0Y
所需的输出,
FRUITS ONLY
-----------------
banana
apple
peach
-----------------
Run Code Online (Sandbox Code Playgroud)
可以通过改变模板来获得。
FRUITS ONLY
-----------------
banana
apple
peach
-----------------
Run Code Online (Sandbox Code Playgroud)
所需的见解是:
{{- 需要抑制它们。println函数在其输出前面添加一个换行符。这可以防止{{- 下一行消耗它。工作解决方案位于https://goplay.space/#I9LzPaAXMr0
IMO,https: //pkg.go.dev/text/template上的文本/模板文档将通过添加上述内容的解释来改进。
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |