たとえば、次のような関数があります。
func TestFunc(str string) string {
return strings.Trim(str," ")
}
以下の例で実行されます。
{{ $var := printf "%s%s" "x" "y" }}
{{ TestFunc $var }}
テンプレート内の演算子で文字列を連結する方法はありますか?
{{ $var := "y" }}
{{ TestFunc "x" + $var }}
または
{{ $var := "y" }}
{{ TestFunc "x" + {$var} }}
オペランドエラーで予期しない「+」が発生します。
ドキュメントで見つかりませんでした( https://golang.org/pkg/text/template/ )
Goテンプレートには演算子がないため、文字列を演算子で連結する方法はありません。
質問に示されているようにprintf
関数を使用するか、単一のテンプレート式で呼び出しを組み合わせます。
{{ TestFunc (printf "%s%s" "x" "y") }}
TestFunc引数の文字列を常に連結する必要がある場合は、連結を処理するためにTestFuncを記述します。
func TestFunc(strs ...string) string {
return strings.Trim(strings.Join(strs, ""), " ")
}
{{ TestFunc "x" $var }}