Maîtrisez l'Art des Modèles Go : Guide Complet (2023)

Les modèles internes de Go, fournis par le package text/template, servent de base à de nombreuses implémentations de modèles couramment utilisées. Des exemples spécifiques de HashiCorp incluent les strophes de modèles Nomad, consul-template, les modèles d'agent Vault, Nomad Pack, et Levant. D'autres implémentations bien connues sont Hugo et Helm. Ce tutoriel se concentre sur les fonctions universellement fournies par le package text/template.

Structure du Modèle Go

Le modèle Go, soumis au moteur de modèle pour rendu, se compose de texte et d'"actions". Tout le texte en dehors des actions est copié inchangé dans la sortie.

Actions

Les actions fournissent les composants dynamiques du modèle et sont délimitées par des délimiteurs. Les actions dans le modèle d'exemple incluent des sorties simples, des marqueurs de découpe et des commentaires.

{{ "output" }}
{{- "démontre" }}
{{/* il a un commentaire */}}
{{ "output" | print }}
{{ $A := "affecte des variables" }}
{{ $A }}

Délimiteurs

Les actions sont délimitées par un délimiteur gauche ({{ par défaut) et un délimiteur droit (}} par défaut). Les marqueurs de découpe permettent de supprimer les espaces indésirables.

Commentaires et Pipelines

Les commentaires, définis entre / et /, ne sont pas traités par le moteur de rendu. Les pipelines, chaînes de "commandes" séparées par |, permettent d'utiliser des fonctions comme print.

{{ "output" | print }}

Valeurs Simples et Littéraux

Les valeurs simples, comme les chaînes littérales, sont utilisées dans des actions telles que {{ "output" }}. Les littéraux Go incluent des chaînes, des chaînes brutes, des entiers, des points flottants et des booléens.

Fonctions et Structures de Contrôle

Les fonctions universellement disponibles incluent print, et la structure de contrôle utilise des actions comme if, else, range, et with. Ces structures permettent des branchements, des itérations et l'utilisation de sous-modèles.

Liste des Fonctions Go Template

  • and
  • call
  • index
  • slice
  • len
  • not
  • or
  • print
  • printf
  • println

Fonctions de Comparaison

  • eq
  • ne
  • lt
  • le
  • gt
  • ge

Fonctions de Sortie Spécialisées

  • html
  • js
  • urlquery

Conclusion

Maintenant que vous maîtrisez l'essentiel du langage de modèle Go, explorez davantage avec des tutoriels spécifiques. Consultez notre guide complet sur la syntaxe des modèles Go pour formater la sortie des commandes Nomad.

Maîtrisez l'art des modèles Go et optimisez votre utilisation pour des expériences de développement plus fluides et puissantes.

Top Articles
Latest Posts
Article information

Author: Maia Crooks Jr

Last Updated: 25/10/2023

Views: 5925

Rating: 4.2 / 5 (63 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Maia Crooks Jr

Birthday: 1997-09-21

Address: 93119 Joseph Street, Peggyfurt, NC 11582

Phone: +2983088926881

Job: Principal Design Liaison

Hobby: Web surfing, Skiing, role-playing games, Sketching, Polo, Sewing, Genealogy

Introduction: My name is Maia Crooks Jr, I am a homely, joyous, shiny, successful, hilarious, thoughtful, joyous person who loves writing and wants to share my knowledge and understanding with you.