質問:
Go テンプレートで、次を使用して文字列を連結する効率的な方法はありますか? " " のような演算子?
提供例:
<code class="go">{{ $var := printf "%s%s" "x" "y" }} {{ TestFunc $var }} // Returns "xy" {{ $var := "y" }} {{ TestFunc "x" + $var }} // Error: unexpected "+" in operand {{ $var := "y" }} {{ TestFunc "x" + {$var} }} // Error: unexpected "+" in operand</code>
答え:
Go テンプレートは次の演算子をサポートしていません。文字列の連結。したがって、上記の例ではエラーが発生します。
解決策:
printf 関数を使用します:
最初の例で示したように、printf 関数を使用して文字列を連結できます。この方法は効率的かつ柔軟です。
<code class="go">{{ $var := printf "%s%s" "x" "y" }} {{ TestFunc $var }} // Returns "xy"</code>
テンプレート式の結合:
複数のテンプレート式を結合して連結することもできます。
<code class="go">{{ TestFunc (printf "%s%s" "x" "y") }} // Returns "xy"</code>
TestFunc 引数処理の変更:
ユースケースで常に TestFunc 引数の文字列の連結が必要な場合は、内部で連結を処理するように関数を変更できます。
<code class="go">func TestFunc(strs ...string) string { return strings.Trim(strings.Join(strs, ""), " ") } {{ TestFunc "x" $var }} // Returns "xy"</code>
以上がGo テンプレートで文字列を効率的に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。