golang : template で変数を利用した前後のスペース、改行をなくす
go の text/template パッケージの Text and Spaces に書かれているとおり、前のスペースをなくすには {{-
を、後ろのスペースをなくすには -}}
のように -
をつける(アクセスする変数と -
の間のスペースは必須で、括弧と -
の間にスペースはいれてはいけない)。
template 中、range でスライスやマップをループするときの出力調整などに。
この方法はスペースと改行を区別せず、連続している空白を全て消すことに注意。
例
{{ range $ }} {{ . }} {{ end }}
のような -
のないテンプレートに要素が "A", "B", "C" というスライスを与えて実行すると
A B C
という出力になり、テンプレートを
{{ range $ -}} {{ . }} {{ end -}}
のように変えると
A B C
になる(range $ -}}
の -
が、同じ行の後ろに続く改行だけでなく次の行の {{.}}
の前のスペースも消している)。