Maison >développement back-end >Golang >Comment puis-je créer des structures immuables dans Go ?

Comment puis-je créer des structures immuables dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-12 13:34:02846parcourir

How can I create immutable structs in Go?

Création de structures immuables dans Go

Dans Go, il est possible de créer des structures immuables qui, une fois initialisées, ne peuvent être utilisées que pour lire des valeurs plutôt que de les modifier. Voici comment procéder :

Rendre les membres privés

En règle générale, les champs d'une structure sont exportés et sont accessibles depuis l'extérieur du package. Pour créer une structure immuable, rendez ses champs non exportés en utilisant des lettres minuscules au début des noms de champs. Cela empêche l'accès externe aux champs.

Fournir des méthodes de lecture

Pour permettre l'accès aux valeurs des champs, définissez les méthodes du récepteur avec le préfixe "Value()" ou un nom descriptif. Ces méthodes récupèrent les valeurs sans modifier la structure.

Exemple

Voici un exemple d'extrait de code qui démontre la création d'une structure immuable :

package example

type ImmutableStruct struct {
    value int
}

func (s ImmutableStruct) GetValue() int {
    return s.value
}

func NewImmutableStruct(value int) ImmutableStruct {
    return ImmutableStruct{value: value}
}

Utilisation

Cette structure immuable peut être utilisée comme suit :

myStruct := example.NewImmutableStruct(3)
fmt.Println(myStruct.GetValue())  // Prints 3

Dans cet exemple, la variable myStruct est immuable et ne peut pas être modifiée directement. Il ne peut être utilisé que pour récupérer la valeur via la méthode GetValue().

En rendant les structures immuables, vous pouvez améliorer la sécurité et l'intégrité de vos applications Go, en garantissant que les données sensibles ou critiques sont protégées contre les modifications involontaires. .

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn