You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go text/template可选行渲染异常:前缀与换行处理问题

解决Go text/template可选前缀的换行问题

直接上正确的模板写法:

{{- with $.Prefix -}}{{ . }}{{ "\n" }}{{- end -}}Contents

如果追求可读性,也可以拆成多行:

{{- with $.Prefix -}}
{{ . }}
{{- "\n" -}}
{{- end -}}
Contents

为什么之前的写法出问题?

  • 用{{ end -}}时,-会吃掉end后面的所有空白(包括模板里的换行),导致Prefix输出后直接和Contents拼接,没有预期的换行。
  • 改成{{- end }}时,当Prefix为空,with块不执行,但模板里{{- end }}和Contents之间的换行没被处理,就会多出来一个空行。

验证三种场景

  1. Prefix="Hello World":输出
    Hello World
    Contents
    
  2. Prefix="Hello\nWorld":输出
    Hello
    World
    Contents
    
  3. Prefix="":输出
    Contents
    

内容的提问来源于stack exchange,提问作者Emptyless

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:52:37