ホームページ  >  記事  >  バックエンド開発  >  Go で不変の構造体を作成するにはどうすればよいですか?

Go で不変の構造体を作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-12 13:34:02771ブラウズ

How can I create immutable structs in Go?

Go での不変構造体の作成

Go では、一度初期化されると値を読み取るためだけに使用できる不変構造体を作成することができます。変更するよりも。その方法は次のとおりです。

メンバーをプライベートにする

通常、構造体のフィールドはエクスポートされ、パッケージの外部からアクセスできます。不変の構造体を作成するには、フィールド名の先頭に小文字を使用して、そのフィールドをエクスポートしないようにします。これにより、フィールドへの外部アクセスが防止されます。

リーダー メソッドの提供

フィールド値へのアクセスを有効にするには、プレフィックス「Value()」またはわかりやすい名前。これらのメソッドは、構造体を変更せずに値を取得します。

次に、不変の構造体の作成を示すコード スニペットの例を示します。

package example

type ImmutableStruct struct {
    value int
}

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

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

使用法

この不変の構造体は次のように使用できます:

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

この例では、myStruct 変数は不変であり、直接変更できません。 GetValue() メソッドを通じて値を取得する場合にのみ使用できます。

構造体を不変にすることで、Go アプリケーションのセキュリティと整合性を強化し、機密データや重要なデータを意図しない変更から確実に保護できます。 .

以上がGo で不変の構造体を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。