ホームページ >バックエンド開発 >Golang >Go 構造体でプライベート フィールドとメソッドをカプセル化するにはどうすればよいですか?

Go 構造体でプライベート フィールドとメソッドをカプセル化するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-06 22:29:10267ブラウズ

How to Encapsulate Private Fields and Methods in Go Structs?

Go での構造体のプライベート フィールドとメソッドのカプセル化

Go では、構造体のフィールドとメソッドの両方を真にカプセル化するには、理解する必要があります。変数のスコープと可視性のルール。

慣例により、識別子で始まります。大文字の付いたファイルはエクスポートされ、宣言パッケージの外部からアクセスできます。逆に、小文字の識別子はパッケージ自体内でのみアクセスできます。

mytype 構造体とその doPrivate メソッドの両方をプライベート化するには、次の手順を実行する必要があります:

  1. 個別のパッケージ: mytype 構造体とそれに関連するメソッド用に別のパッケージを作成します。これにより、mytype 型のメンバーのみがそのプライベート フィールドとメソッドにアクセスできるようになります。
  2. Lowercase Identifier: mytype 構造体と doPrivate メソッドの両方の名前を小文字で始まるように変更します。

結果のコード:

// Package mypkg defines the private mytype struct and its methods.
package mypkg

type mytype struct {
    size          string
    hash          uint32
}

// doPrivate can only be accessed by members of mytype.
func (r *mytype) doPrivate() string {
    return r.size
}

今だけmytype 構造体のメンバーは、そのプライベート フィールドとメソッドにアクセスできます。 mypkg パッケージ内の外部型または関数は、これらのプライベート メンバーに直接アクセスできません。

以上がGo 構造体でプライベート フィールドとメソッドをカプセル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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