Comprendre les pipelines dans les modèles Golang
Dans les modèles Golang, les pipelines font référence à une série de commandes qui manipulent et transforment les données. Ces commandes peuvent inclure des valeurs de base, des appels de fonction ou des invocations de méthodes. Un pipeline peut contenir plusieurs commandes, séparées par le | personnage. La sortie de chaque commande est transmise comme dernier argument à la commande suivante dans le pipeline.
Le rôle du "point" (.) dans les pipelines
Le " point" (.) est un curseur qui pointe vers la position actuelle dans la structure de données utilisée par le modèle. Lorsque vous exécutez un modèle, le point est initialement défini sur la valeur transmise à l'exécution du modèle. Au fur et à mesure du traitement du modèle, le point peut changer de valeur pour pointer vers des champs ou des sous-structures spécifiques au sein des données.
Pipelines dans les invocations de modèles
Lors de l'appel d'un autre modèle à l'aide Avec la fonction {{template}}, vous pouvez spécifier la valeur des données à utiliser dans le modèle invoqué en utilisant le point comme argument du pipeline. Par exemple, {{template "myTemplate" .}} transmet la valeur de point actuelle au modèle nommé "myTemplate".
Utilisation de "dot" et "$" pour l'accès aux données
Alors que le curseur point donne accès à la valeur actuelle dans le modèle, le symbole $ peut être utilisé pour accéder à la valeur d'origine transmise à l'exécution du modèle. Ceci est utile lorsque le point a été modifié par des actions telles que {{range}} ou {{with}}.
Exemple
Considérez le modèle suivant :
{{- define "test" -}} {{- printf "%s" .Name | trunc 24 -}} {{- end -}}
Dans cet exemple, le point (.Name) fait référence au champ Nom de la structure de données transmise à l'exécution du modèle. Le | Le pipeline trunc 24 applique la fonction trunc à la valeur Name, en la tronquant à 24 caractères. Cette valeur transformée est ensuite imprimée à l'aide de printf.
Conclusion
Les pipelines et le "point" sont des concepts fondamentaux dans les modèles Golang. Ils fournissent un mécanisme puissant pour manipuler et accéder aux données dans les modèles, permettant une génération de modèles flexible et dynamique.
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!