2017-07-29 6 views
2
例えば

で文字列を連結するための効率的な方法がありますが、そのような機能がありますテンプレート内の演算子を持つ文字列?golangテンプレート

{{ $var := "y" }} 
{{ TestFunc "x" + $var }} 

または

{{ $var := "y" }} 
{{ TestFunc "x" + {$var} }} 

これは、オペランド・エラーで "+" 予期せぬ与えます。

は、私はドキュメントでそれを見つけるcouldntの( https://golang.org/pkg/text/template/

答えて

4

ゴーテンプレートは、演算子を持っていないので、演算子で文字列を連結する方法はありません。

は疑問に示すようprintf機能を使用するか、単一のテンプレート式で呼び出しを組み合わせる:あなたは常にTestFunc引数の文字列を連結する必要がある場合は

{{ TestFunc (printf "%s%s" "x" "y") }} 

が、その後、連結を処理するためにTestFuncを記述します。

func TestFunc(strs ...string) string { 
    return strings.Trim(strings.Join(strs, ""), " ") 
} 

{{ TestFunc "x" $var }} 
+0

いいトリックです。ご回答有難うございます。 –

関連する問題