Utiliser des structures immuables dans Go
Dans Go, vous pourriez rencontrer le besoin d'une structure immuable, qui empêche la modification de ses champs après l'initialisation . Cela peut améliorer l'intégrité et la sécurité des données dans certains scénarios.
Pour obtenir l'immuabilité d'une structure dans Go, vous pouvez utiliser une technique qui consiste à rendre ses membres non exportés et à fournir des fonctions en lecture seule pour accéder à leurs valeurs. Voici comment implémenter cela :
package mypackage type myImmutable struct { value int } func (s myImmutable) Value() int { return s.value }
Dans cet exemple, la structure myImmutable a une valeur de champ non exportée. Pour accéder à la valeur du champ en dehors du package, nous fournissons une fonction getter Value().
L'initialisation de la structure peut être effectuée à l'aide d'une fonction constructeur, qui crée une nouvelle instance et définit la valeur :
func NewMyImmutable(value int) myImmutable { return myImmutable{value: value} }
L'utilisation de votre structure immuable ressemblerait à ceci :
myImmutable := mypackage.NewMyImmutable(3) fmt.Println(myImmutable.Value()) // Prints 3
En utilisant des getters pour accéder aux champs de la structure, toute tentative de les modifier en dehors du package entraînera une erreur du compilateur. Cette approche rend effectivement la structure immuable.
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!