Création de structures immuables dans Go
Les structures immuables, une fois initialisées, autorisent uniquement les opérations de lecture sur leurs champs sans possibilité de modification. Y parvenir dans Go nécessite une approche légèrement différente de celle dans certains autres langages.
La solution
Pour créer des structures immuables dans Go :
Exemple de code
package mypackage type ImmutableStruct struct { value int } func (s ImmutableStruct) Value() int { return s.value } func NewImmutableStruct(value int) ImmutableStruct { return ImmutableStruct{value: value} }
Utilisation
myImmutableStruct := mypackage.NewImmutableStruct(3) fmt.Println(myImmutableStruct.Value()) // Prints 3
Dans cet exemple, l'ImmutableStruct a des champs non exportés et une fonction de lecture (Value()) pour accéder à la valeur champ. Une fois initialisé, il ne peut pas être modifié depuis l'extérieur du package mypackage.
Cette technique garantit l'immuabilité tout en conservant la flexibilité des structures et la modularité des packages 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!