Maison >développement back-end >Golang >Comment effectuer des calculs dans les modèles Go HTML ?
Problème :
Dans les modèles Go HTML, tenter d'effectuer des calculs comme {{ $length -1 }} dans un modèle ne fonctionne pas. Comment pouvons-nous réaliser cette fonctionnalité ?
Réponse :
Malheureusement, les calculs ne peuvent pas être effectués directement dans les modèles HTML. Cela est dû à la philosophie fondamentale de conception consistant à séparer la logique complexe des modèles.
Solutions :
Considérez plutôt ces approches alternatives :
1. Transmettre les résultats calculés en tant que paramètres :
La méthode préférée consiste à calculer la valeur souhaitée dans votre code Go et à la transmettre en tant que paramètre de modèle.
func main() { length := len(myMap) t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ .LastIndex }}</p>`)) t.Execute(os.Stdout, map[string]interface{}{"LastIndex": length - 1}) }
2. Enregistrez des fonctions personnalisées :
Vous pouvez également enregistrer des fonctions personnalisées et les appeler dans vos modèles. Ces fonctions peuvent effectuer des calculs et renvoyer des valeurs.
func RegisterCalcFunc(t *template.Template) { t.Funcs["calcIndex"] = func(length int) int { return length - 1 } } func main() { RegisterCalcFunc(t) t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ calcIndex .Length }}</p>`)) t.Execute(os.Stdout, map[string]interface{}{"Length": len(myMap)}) }
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!