Maison  >  Article  >  développement back-end  >  golang génère la méthode de modèle

golang génère la méthode de modèle

王林
王林original
2023-05-13 10:44:07845parcourir

Golang est un langage de programmation très populaire avec une syntaxe simple, une efficacité d'exécution élevée et une forte lisibilité. Dans Golang, la génération de modèles est une exigence de développement courante et peut être utilisée pour générer divers modèles de code ou de document afin d'améliorer l'efficacité du développement. Cet article explique comment utiliser Golang pour générer des méthodes de modèle.

1. Langage du modèle

Le langage du modèle de Golang utilise une méthode de type balise pour identifier les parties du modèle qui doivent être remplacées. Une balise contient généralement deux types, à savoir "{{" et "}}". Entre ces deux balises, on peut insérer certaines valeurs ou expressions qui doivent être remplacées. Par exemple : {{.}} représente la structure de données entière elle-même, {{.FieldName}} représente la valeur d'un champ dans la structure, {{range .List}}{{.}}{{end}} représente le parcours une donnée de groupe.

En même temps, dans la syntaxe du modèle, il prend également en charge les instructions de jugement conditionnel, les instructions de boucle, les appels de fonction et d'autres opérations. La syntaxe spécifique est la suivante :

1. Déclaration de jugement conditionnel

{{if .Condition}}

<!-- Code block if the condition is true -->

{{else}}# 🎜🎜#

<!-- Code block if the condition is false -->

{{end}}

Par exemple :

{{if eq.Color "Red"}}

This is a red car
#🎜 🎜#{{ else}}

This is not a red car

{{end}}

2. Instruction de boucle

{{range .List}}#🎜 🎜#

<!-- Code block for each element in the list -->
# 🎜🎜#{{end}}

Par exemple :

{{range .List}}

This is a {{.Color}} {{.Brand}} car

{{end }}{ dateformat .CreateTime "aaaa- MM-jj HH:mm:ss"}}

2. Fichier modèle

Dans Golang, nous pouvons atteindre l'objectif de génération de modèles en définissant fichiers de modèles. De manière générale, nous pouvons diviser les fichiers modèles selon différentes fonctions ou générer différents fichiers. Nous pouvons également mettre tous les modèles dans le même fichier. Dans le fichier modèle, nous pouvons utiliser le langage de modèle ci-dessus pour écrire le modèle.

Par exemple, nous devons générer un fichier HTML, nous pouvons écrire un fichier modèle comme suit :

8b05045a5be5764f313ed5b9168a17e6

100db36a723c770d327fc0aef2ce13b1 #🎜🎜 #93f0f5c25f18dab9d176bd4f6de5d30e

<meta charset="UTF-8">
<title>{{.Title}}</title>

9c3bca370b5104690d9ef395f2c5f8d1

6c04bd5ca3fcae76e30b72ad730ca86d

<h1>{{.Heading}}</h1>
{{range .Articles}}
    <h2>{{.Title}}</h2>
    <p>{{.Content}}</p>
{{end}}

36cc49f0c466276486e50c850b7e4956

081a934c7ac7a6b28b4ef3b648acdd09

3. Génération de modèles

Dans Golang, nous pouvons utiliser le package "text/template" ou "html/template" pour générer des modèles. La principale différence entre les deux est que « html/template » échappe à la chaîne générée pour éviter les attaques XSS.


Avant d'utiliser le package "text/template" ou "html/template", nous devons préparer le modèle de données. Ici, nous pouvons utiliser une structure pour le représenter. Par exemple, voici une structure utilisée pour représenter les articles :

type Article struct {

Title   string
Content string

}

Nous devons également définir une structure Pour représenter le modèle de données de la page, comme suit :

type PageData struct {

Title    string
Heading  string
Articles []Article

}

Ensuite, nous pouvons utiliser le "ParseFiles " pour analyser le fichier modèle et renvoyer l'objet modèle traité :

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

Ensuite, nous pouvons convertir le modèle de données Transmis à l'objet modèle traité pour générer la chaîne finale :

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

où le premier paramètre est l'emplacement de sortie peut être os.Stdout, bytes.Buffer, etc. ; le deuxième paramètre est le modèle de données.

Si nous voulons générer un fichier, nous pouvons utiliser "os.Create" pour créer un fichier puis le passer à la fonction "t.Execute":

f , err := os.Create("output.html")

defer f.Close()

err = t.Execute(f, data)

De cette façon, une base La méthode de génération de modèles Golang est terminée.

Conclusion

La fonction de génération de modèles de Golang est très puissante et peut être utilisée pour générer divers modèles de code ou de document. En pratique, il existe de nombreuses autres fonctionnalités et techniques avancées qui peuvent être appliquées au processus de génération de modèles, telles que les fonctions personnalisées, l'héritage de modèles, la génération de modèles dynamiques, etc. J'espère que cet article pourra fournir une direction de départ de base pour les débutants.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn