golang テンプレート生成メソッド

王林
リリース: 2023-05-13 10:44:07
オリジナル
852 人が閲覧しました

Golang は、シンプルな構文、高い実行効率、優れた可読性を備えた非常に人気のあるプログラミング言語です。 Golang では、テンプレートの生成は一般的な開発要件であり、これを使用してさまざまなコードやドキュメント テンプレートを生成し、開発効率を向上させることができます。この記事では、Golang を使用してテンプレート メソッドを生成する方法を紹介します。

1. テンプレート言語

Golang のテンプレート言語は、タグに似たメソッドを使用して、置き換える必要があるテンプレートの部分を識別します。タグには通常、「{{」と「}}」の 2 種類が含まれます。これら 2 つのタグの間に、置換する必要がある値または式を挿入できます。例: {{.}} はデータ構造自体全体を表し、{{.FieldName}} は構造内のフィールドの値を表し、{{range .List}}{{.}}{{end}} はトラバースを表します。グループデータ。

同時に、テンプレート構文では、条件判定文、ループ文、関数呼び出しなどの操作もサポートしています。具体的な構文は以下のとおりです:

1. 条件判定文

{{if .Condition}}

<!-- Code block if the condition is true -->
ログイン後にコピー

{{else}}

<!-- Code block if the condition is false -->
ログイン後にコピー

{{end }}

例:

{{if eq .Color "Red"}}

This is a red car
ログイン後にコピー

{{else}}

This is not a red car
ログイン後にコピー

{{end} }

2. ループ ステートメント

{{range .List}}

<!-- Code block for each element in the list -->
ログイン後にコピー

{{end}}

例:

{{range .List}}

This is a {{.Color}} {{.Brand}} car
ログイン後にコピー

{{end}}

3. 関数呼び出し

{{FuncName .Parameter}}

例:

{{dateformat .CreateTime "yyyy-MM-dd HH:mm:ss"}}

2. テンプレート ファイル

Golang では、テンプレート生成の目的を達成するためにテンプレート ファイルを定義できます。一般的に、機能ごとにテンプレート ファイルを分割したり、異なるファイルを生成したりできます。すべてのテンプレートを同じファイルに入れることもできます。テンプレート ファイルでは、上記のテンプレート言語を使用してテンプレートを作成できます。

たとえば、HTML ファイルを生成する必要がある場合、次のようにテンプレート ファイルを作成できます:



< ;head>

<meta charset="UTF-8">
<title>{{.Title}}</title>
ログイン後にコピー


<h1>{{.Heading}}</h1>
{{range .Articles}}
    <h2>{{.Title}}</h2>
    <p>{{.Content}}</p>
{{end}}
ログイン後にコピー


3.テンプレートの生成

Golang では、「text/template」パッケージまたは「html/template」パッケージを使用してテンプレートを生成できます。 2 つの主な違いは、XSS 攻撃を回避するために、「html/template」が生成された文字列をエスケープすることです。

「text/template」パッケージまたは「html/template」パッケージを使用する前に、データ モデルを準備する必要があります。ここでは、構造を使用してそれを表現できます。たとえば、次は記事を表すために使用される構造です:

type Article struct {

Title   string
Content string
ログイン後にコピー

}

また、記事のデータ モデルを表す構造を定義する必要があります。

type PageData struct {

Title    string
Heading  string
Articles []Article
ログイン後にコピー

}

次に、「ParseFiles」関数を使用してテンプレート ファイルを解析し、処理されたテンプレートを返すことができます。 object:

t, err := template.ParseFiles("template.html")

次に、データ モデルを処理されたテンプレート オブジェクトに渡して、最終的な文字列を生成します。

err = t.Execute(os.Stdout, data)

最初のパラメーターは出力場所で、os.Stdout、bytes.Buffer などを指定できます。2 番目のパラメーターはデータ モデルです。 。

ファイルを生成したい場合は、「os.Create」を使用してファイルを作成し、それを「t.Execute」関数に渡すことができます:

f, err := os.Create("output.html")
defer f.Close()
err = t.Execute(f, data)

このようにして、基本的な Golang テンプレート生成方法が完成します。

結論

Golang のテンプレート生成機能は非常に強力で、さまざまなコードやドキュメントのテンプレートを生成するために使用できます。実際には、カスタム関数、テンプレートの継承、動的テンプレート生成など、テンプレート生成プロセスに適用できる高度な機能やテクニックが他にも多数あります。この記事が初心者向けの基本的な開始方向を提供できれば幸いです。

以上がgolang テンプレート生成メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート