Frage:
Gibt es in Go-Vorlagen eine effiziente Möglichkeit, Zeichenfolgen mit zu verketten? Operatoren wie „ “?
Bereitgestellte Beispiele:
<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>
Antwort:
Go-Vorlagen unterstützen keine Operatoren für String-Verkettung. Daher führen die obigen Beispiele zu Fehlern.
Lösungen:
Verwenden Sie die printf-Funktion:
Wie im ersten Beispiel gezeigt, können Sie die printf-Funktion zum Verketten von Zeichenfolgen verwenden. Diese Methode ist effizient und flexibel.
<code class="go">{{ $var := printf "%s%s" "x" "y" }} {{ TestFunc $var }} // Returns "xy"</code>
Vorlagenausdrücke kombinieren:
Sie können auch mehrere Vorlagenausdrücke kombinieren, um eine Verkettung zu erreichen.
<code class="go">{{ TestFunc (printf "%s%s" "x" "y") }} // Returns "xy"</code>
Ändern Sie die TestFunc-Argumentbehandlung:
Wenn Ihr Anwendungsfall immer die Verkettung von Zeichenfolgen für das TestFunc-Argument beinhaltet, können Sie die Funktion so ändern, dass sie die Verkettung intern verarbeitet.
<code class="go">func TestFunc(strs ...string) string { return strings.Trim(strings.Join(strs, ""), " ") } {{ TestFunc "x" $var }} // Returns "xy"</code>
Das obige ist der detaillierte Inhalt vonWie verkette ich Strings in Go-Vorlagen effizient?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!