まえがき
Goのテンプレートを使うと、データを元に動的なテキストを生成できますが、出力されるテキストに 不要な空白や改行が混ざってしまう ことがあります。
特に、HTMLやメールテンプレートなどを扱う場合、意図しないスペースが入ると見栄えが崩れることも…。
そこで役立つのが トリミング(whitespace trimming) です。
{{-
や -}}
を使うことで、無駄な空白を削除し、きれいな出力を作ることができます。
本記事では、Goのテンプレートのトリミングについて解説していきます。
Go言語のテンプレート機能の基本的な使い方については下記記事をお読みください。
Go言語のテンプレート機能を初心者向けに解説
トリミングとは?
テンプレートの出力では、通常 {}
の外にある文字や空白はそのまま表示されます。しかし、トリミングを使うと不要な空白を削除する ことができます。
空白文字の定義について
このトリミングにおける空白文字の定義は Go 言語と同じで、スペース ( )、水平タブ (\t)、キャリッジリターン (\r)、改行 (\n) です。
トリミングの基本
Go のテンプレートでは、次のような記号を使うと空白を削除できます。
記号 | 効果 |
---|---|
{{- |
直前の空白を削除 |
-}} |
直後の空白を削除 |
実際の例を見てみよう!
例①: 空白を削除しない場合
まず、普通のテンプレートを考えてみます。
|
|
この場合の出力は:
|
|
この 23
と 45
の間には スペース があります。
例②: 空白を削除する場合
次に、トリミングを使ってみます。
|
|
この場合の出力は:
|
|
✅ 違いは?
{{23 -}}
→23
の後の空白を削除{{- 45}}
→45
の前の空白を削除
つまり、<
の前後のスペースが 削除 されました!
例③: タブや改行を削除する場合
以下は、タブや改行をトリミングする例です。
以下のコードでは、改行やタブなどの余分な空白が、トリミングマーカー ({{-
と -}}
) によって削除され、出力結果がスッキリとしています。
|
|
|
|
-
改行トリミング例
"Hello,"
の直後の改行とスペースは、{{- "World!" -}}
の左側トリミングによって削除されます。- また、
"World!"
の後にある改行やスペースも右側トリミングにより削除され、結果として"Hello,World!Goodbye."
のように余分な空白がなくなります。
-
タブトリミング例
"Start"
と"Middle"
の間のタブや余分な空白が、同様にトリミングマーカーによって削除され、"StartMiddleAfterTab: "End"
のように出力されます。
トリミングの具体的な使いどころ
-
改行や余計なスペースを減らす
- HTML やテキストを整えるときに便利!
-
コードをスッキリさせる
-
を入れるだけで、無駄なスペースを削除できる。
あとがき
Go のテンプレートでは、普通 {}
の外にある空白はそのまま表示されますが、-
を使うと不要な空白を削除できます。特に、改行やインデントを調整したいときに役立ちます!
✅ 覚えておこう!
{{-
→ 直前の空白を削除-}}
→ 直後の空白を削除
シンプルなルールなので、テンプレートを使うときに試してみてください。