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