Maison >développement back-end >Golang >Comment concaténer des chaînes efficacement dans les modèles Go ?

Comment concaténer des chaînes efficacement dans les modèles Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-06 15:25:02614parcourir

How to Concatenate Strings Efficiently in Go Templates?

Concaténer efficacement des chaînes dans des modèles

Question :

Dans les modèles Go, existe-t-il un moyen efficace de concaténer des chaînes à l'aide opérateurs comme " ?

Exemples fournis :

<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>

Réponse :

Les modèles Go ne prennent pas en charge les opérateurs pour concaténation de chaînes. Par conséquent, les exemples ci-dessus entraîneront des erreurs.

Solutions :

  1. Utilisez la fonction printf :
    Comme démontré dans le premier exemple, vous pouvez utiliser la fonction printf pour concaténer des chaînes. Cette méthode est efficace et flexible.

    <code class="go">{{ $var := printf "%s%s" "x" "y" }}
    {{ TestFunc $var }}  // Returns "xy"</code>
  2. Combiner des expressions de modèle :
    Vous pouvez également combiner plusieurs expressions de modèle pour réaliser une concaténation.

    <code class="go">{{ TestFunc (printf "%s%s" "x" "y") }}  // Returns "xy"</code>
  3. Modifier la gestion de l'argument TestFunc :
    Si votre cas d'utilisation implique toujours la concaténation de chaînes pour l'argument TestFunc, vous pouvez modifier la fonction pour gérer la concaténation en interne.

    <code class="go">func TestFunc(strs ...string) string {
        return strings.Trim(strings.Join(strs, ""), " ")
    }
    
    {{ TestFunc "x"  $var }}  // Returns "xy"</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Concurrent ScrapperArticle suivant:Concurrent Scrapper