2
text/template
に記載されている最初のプログラム例では、フォームレターが作成されています。Golangのテキスト/テンプレートと{{with}} {{end}}の使用
文字はレンジで解析されますが、なぜ.Gift
は直接対処された
{{with .Gift}} ..... {{.}} {{end}}
.Name
と.Attended
を経由して使用する必要がありません。どうして?
text/template
に記載されている最初のプログラム例では、フォームレターが作成されています。Golangのテキスト/テンプレートと{{with}} {{end}}の使用
文字はレンジで解析されますが、なぜ.Gift
は直接対処された
{{with .Gift}} ..... {{.}} {{end}}
.Name
と.Attended
を経由して使用する必要がありません。どうして?
Gift
はオプションであり、Gift
が提供されていない場合、私たちは手紙の中で何かを感謝したくありません。 Gift
が提供されている場合は、贈り物に感謝したいと思います。
{{with}}
アクションが渡されたパイプラインが空でない場合にのみ、条件付きでその本体を実行します。
{{with pipeline}} T1 {{end}}
If the value of the pipeline is empty, no output is generated;
otherwise, dot is set to the value of the pipeline and T1 is
executed.
ですから、例えば、これを含んでいます
{{with .Gift -}}
Thank you for the lovely {{.}}.
{{end}}
これがあれば.Gift
が空でないことを意味し、出力(手紙)に「ありがとう」文を含める。 .Gift
が空の場合、「ありがとう」は省略されます。