Golang の Template パッケージ実践ガイド: テンプレート エンジンの詳細な習得
はじめに:
Golang の Template パッケージは、テキスト出力を生成するための強力で柔軟なテンプレート エンジンです。これは、データをテンプレートと組み合わせて再利用可能なテキストまたは HTML スニペットを生成するためのシンプルかつ直感的な方法を提供します。この記事では、基本的な使用法、テンプレート定義、データ転送、カスタム関数など、Golang の Template パッケージについて詳しく説明し、コード例を示して詳細に説明します。
1. 基本的な使用法
1.1 Template パッケージをインポートする
Template パッケージを使用する前に、まずそれをインポートする必要があります。次のコードを使用して、Template パッケージをインポートできます。
import "text/template"
1.2 テンプレートの作成
まず、template.New()
関数を使用して、新しいテンプレート オブジェクトを作成します。をクリックし、テンプレート名を指定します。コード例は次のとおりです。
t := template.New("myTemplate")
1.3 テンプレートを解析する
次に、template.Parse()
メソッドを使用してテンプレートを解析し、そのコンテンツをロードする必要があります。テンプレートをテンプレート オブジェクトに追加します。コード例は次のとおりです。
t, err := t.Parse("Hello, {{.}}!")
1.4 テンプレートのレンダリング
テンプレートが正常に解析されたら、template.Execute()
メソッドを使用してテンプレートをレンダリングし、データを出力用のテンプレートにコピーします。コード例は次のとおりです:
err = t.Execute(os.Stdout, "World")
2. テンプレート定義
2.1 基本プレースホルダー
テンプレートでは、{{.}}
をプレースホルダーとして使用して表すことができます。現在のデータオブジェクト。 Execute()
メソッドを実行するときに、データ オブジェクトをテンプレートに渡すことができ、テンプレートはこのデータ オブジェクトをプレースホルダーに埋めます。コード例は次のとおりです。
t, err := template.New("myTemplate").Parse("Hello, {{.}}!") err = t.Execute(os.Stdout, "World") // 输出:Hello, World!
2.2 フィールドの使用
単純なプレースホルダーに加えて、フィールドを通じてデータ オブジェクトの特定のプロパティにアクセスすることもできます。テンプレートでは、.
を使用して現在のデータ オブジェクトを表し、.
の後にフィールド名を使用してデータ オブジェクトのプロパティにアクセスできます。コード例は次のとおりです:
type User struct { Name string Age int } t, err := template.New("myTemplate").Parse("Name: {{.Name}}, Age: {{.Age}}") user := User{Name: "Tom", Age: 18} err = t.Execute(os.Stdout, user) // 输出:Name: Tom, Age: 18
3. データ転送
単一のデータ オブジェクトを直接転送することに加えて、map
や # などの構造を通じて複数のデータを転送することもできます。 ##スライスオブジェクト。
マップを使用してデータ オブジェクトを渡す場合、キーを通じて対応する値にアクセスできます。コード例は次のとおりです。
t, err := template.New("myTemplate").Parse("Name: {{.Name}}, Age: {{.Age}}") data := map[string]interface{}{ "Name": "Tom", "Age": 18, } err = t.Execute(os.Stdout, data) // 输出:Name: Tom, Age: 18
スライスを使用して複数のデータ オブジェクトを渡す場合、範囲反復子を使用して各データ オブジェクトを走査できます。コード例は次のとおりです:
t, err := template.New("myTemplate").Parse("{{range .}}{{.}},{{end}}") data := []string{"apple", "banana", "orange"} err = t.Execute(os.Stdout, data) // 输出:apple,banana,orange,
Golang のテンプレート パッケージは、テンプレート内でいくつかのカスタム論理操作を実行するために使用されるカスタム関数もサポートしています。
まず、
template.Funcs() メソッドを使用してカスタム関数を登録する必要があります。コード例は次のとおりです。
func formatName(name string) string { return "Mr. " + name } t := template.New("myTemplate"). Funcs(template.FuncMap{"formatName": formatName}). Parse("Name: {{. | formatName}}") data := "Tom" err := t.Execute(os.Stdout, data) // 输出:Name: Mr. Tom
テンプレートでは、
| 演算子を使用してカスタム関数を呼び出し、データ オブジェクトをテンプレートをパラメータとしてカスタム関数を与えます。コード例は次のとおりです:
func double(x int) int { return x * 2 } t, err := template.New("myTemplate"). Funcs(template.FuncMap{"double": double}). Parse("Double of 5 is {{double 5}}") err = t.Execute(os.Stdout, nil) // 输出:Double of 5 is 10
この記事の紹介とコード例を通じて、読者は Golang の Template パッケージについてより深く理解できると思います。 Template パッケージは、再利用可能なテキストまたは HTML フラグメントを簡単に生成できる、柔軟で強力なテンプレート エンジンです。実際の開発では、テンプレート定義やデータ転送、カスタム関数などの機能をニーズに応じて柔軟に利用することができ、開発効率の向上とコード実装の簡素化を実現します。読者がこの記事のガイドを通じて Golang の Template パッケージの使い方をよりよくマスターできることを願っています。
以上がGolang のテンプレート パッケージ実践ガイド: テンプレート エンジンを徹底的に習得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。