Go bietet zwei Vorlagenpakete: text/template und html/template. Das Paket html/template konzentriert sich darauf, HTML-Ausgaben sicher gegen Code-Injection zu generieren und gleichzeitig eine Schnittstelle mit text/template zu teilen. Folglich werden die Grundlagen der Vorlagenverarbeitung hauptsächlich im Text-/Vorlagenpaket dokumentiert.
Pipelines verstehen
Pipelines beziehen sich auf Sequenzen von Wertauswertungen innerhalb einer Vorlage. Sie bestehen aus Befehlen, die durch das Pipe-Zeichen „|“ getrennt sind. Jeder Befehl kann ein Wert, ein Funktions- oder Methodenaufruf mit seinen Argumenten oder eine Methode ohne Argumente sein, wenn er am Ende einer Kette platziert wird. Das Ergebnis jedes Befehls wird als letztes Argument an den folgenden Befehl übergeben, wobei die Ausgabe des letzten Befehls den Wert der Pipeline darstellt.
Das Punktsymbol (.)
Der Punkt . ist ein Cursor, der auf die aktuelle Position in der an die Vorlage übergebenen Datenstruktur zeigt. Es verweist zunächst auf den an die Vorlage übergebenen Wert, kann aber durch Aktionen wie {{range}} oder {{with}} geändert werden.
Wenn Sie .Name in Ihrer Vorlage verwenden, verweisen Sie auf das Feld „Name“ oder Methode des Werts, auf den der Punkt aktuell zeigt. Wenn der Wert eine Struktur ist, greift .Name auf das entsprechende Feld oder die entsprechende Methode am Anfang der Vorlage zu.
Pipelines in Vorlageneinschlüssen
Bei Verwendung von {{template }} geben Sie eine Pipeline an, um den aktuellen Punktwert an die enthaltene Vorlage zu übergeben. Der als Pipeline übergebene Wert wird zum Punkt innerhalb der aufgerufenen Vorlage.
Verwenden von $ für den Zugriff auf Originaldaten
Da sich der Punkt während der Vorlagenverarbeitung ändern kann, gilt auch das $-Symbol wird bereitgestellt, um auf den ursprünglichen Wert zuzugreifen, der an die Vorlagenausführung übergeben wurde. Dadurch können Sie jeden Teil des ursprünglichen Werts erreichen, selbst innerhalb tief verschachtelter Vorlagenaufrufe.
Das obige ist der detaillierte Inhalt vonWie funktionieren Pipelines in der Template Engine von Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!