ホームページ  >  記事  >  バックエンド開発  >  Go テンプレートで文字列を効率的に連結するにはどうすればよいですか?

Go テンプレートで文字列を効率的に連結するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-06 15:25:02533ブラウズ

How to Concatenate Strings Efficiently in Go Templates?

テンプレート内の文字列を効率的に連結する

質問:

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 テンプレートは次の演算子をサポートしていません。文字列の連結。したがって、上記の例ではエラーが発生します。

解決策:

  1. printf 関数を使用します:
    最初の例で示したように、printf 関数を使用して文字列を連結できます。この方法は効率的かつ柔軟です。

    <code class="go">{{ $var := printf "%s%s" "x" "y" }}
    {{ TestFunc $var }}  // Returns "xy"</code>
  2. テンプレート式の結合:
    複数のテンプレート式を結合して連結することもできます。

    <code class="go">{{ TestFunc (printf "%s%s" "x" "y") }}  // Returns "xy"</code>
  3. 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。