Maison >développement back-end >Golang >Comment transmettre plusieurs valeurs entre les modèles Go ?
Lorsque vous travaillez avec des modèles Go, il peut être nécessaire de transmettre plusieurs valeurs entre les modèles. Cependant, l'action {{template}} du package text/template ne prend en charge que la transmission d'une seule valeur de données facultative. Cela soulève la question de savoir comment transférer efficacement plusieurs éléments de données. Une approche consiste à consolider les données en une seule valeur. Go propose deux options : envelopper les données dans une structure ou utiliser une carte.
Une méthode consiste à créer une structure qui encapsule les données que vous souhaitez transférer. Cette structure peut ensuite être transmise au modèle et utilisée avec la notation par points pour accéder aux éléments de données individuels du modèle. Voici un exemple :
type DataWrapper struct { Shops []Destination CityName string RegionName string }
Si l'utilisation d'une structure n'est pas pratique, vous pouvez également envelopper les données dans une simple carte. Les clés de carte représenteront les noms des éléments de données et les valeurs de carte seront les valeurs de données réelles. Voici un exemple :
func Wrap(shops []Destination, cityName, regionName string) map[string]interface{} { return map[string]interface{}{ "Shops": shops, "CityName": cityName, "RegionName": regionName, } }
Une fois que vous avez encapsulé vos données dans une structure ou une carte, vous pouvez utiliser une fonction personnalisée pour transmettre ces données au modèle. Les fonctions personnalisées peuvent être enregistrées avec la méthode Template.Funcs(), et vous devez le faire avant d'analyser le texte du modèle. Voici un exemple d'utilisation d'une fonction personnalisée pour transmettre des données :
const src = ` {{define "data"}} City: {{.CityName}}, Region: {{.RegionName}}, Shops: {{.Shops}} {{end}} {{- range . -}} {{$city:=.Name}} {{- range .Regions -}} {{$region:=.Name}} {{- template "data" (Wrap .Shops $city $region) -}} {{end}} {{- end}}`
En structurant vos données en une seule valeur et en utilisant des fonctions personnalisées, vous pouvez transmettre efficacement plusieurs valeurs entre les modèles Go. . Cela vous permet de partager efficacement des structures de données complexes entre différentes parties de vos modèles, améliorant ainsi la flexibilité et la maintenabilité de vos applications Web Go.
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!