ホームページ > バックエンド開発 > Golang > Go 構造体でプライベート フィールドとメソッドをカプセル化する方法?

Go 構造体でプライベート フィールドとメソッドをカプセル化する方法?

Mary-Kate Olsen
リリース: 2024-12-08 06:26:10
オリジナル
827 人が閲覧しました

How to Encapsulate Private Fields and Methods in Go Structures?

構造体のプライベート フィールドとメソッド

Go では、構造体を操作するときに、特定のフィールドとメソッドをプライベートとして持つ必要がある場合があります。その構造体のメンバーはアクセスできますが、パッケージのスコープ内の他の型や関数はアクセスできません。

これを実現するには、次のようにします。 Go では、大文字で始まる識別子はパッケージからエクスポートされ、宣言パッケージの外部のエンティティによってアクセスできることに注意することが重要です。逆に、小文字で始まる識別子はパッケージ自体内でのみアクセスできます。

ある型のメンバーにその型のメンバーのみがアクセスできるようにすることが目標の場合は、その型をその型とともに配置する必要があります。メンバー関数は、別のパッケージ内で、そのパッケージ内の唯一の型として扱われます。これを行うと、型とそのメンバーはそのパッケージに対してプライベートになり、外部からアクセスできなくなります。

コードを変更して mytype 構造体と doPrivate メソッドをプライベートにする方法は次のとおりです。

// Define a separate package for mytype.
package mytypepkg

type mytype struct {
    size string
    hash uint32
}

func (r *mytype) doPrivate() string {
    return r.size
}
ログイン後にコピー

現在、mytype と doPrivate は独自のパッケージ内にカプセル化されており、そのパッケージの外の他の型や関数からはアクセスできなくなります。

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート