Heim >Backend-Entwicklung >Golang >Wie verkette ich Strings in Go-Vorlagen effizient?

Wie verkette ich Strings in Go-Vorlagen effizient?

Linda Hamilton
Linda HamiltonOriginal
2024-11-06 15:25:02614Durchsuche

How to Concatenate Strings Efficiently in Go Templates?

Effizientes Verketten von Zeichenfolgen in Vorlagen

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:

  1. 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>
  2. 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>
  3. Ä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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Scrapper-KonkurrentNächster Artikel:Scrapper-Konkurrent