Golang ではパッケージ可視性ルールはどのように機能しますか?

WBOY
リリース: 2024-06-03 17:08:01
オリジナル
1046 人が閲覧しました

Go のパッケージ可視性ルールは、パッケージの外部から識別子にアクセスできるかどうかを決定します。エクスポートされた識別子は大文字で始まり、外部からアクセスできますが、小文字で始まる識別子はプライベートであり、定義されているパッケージ内でのみアクセスできます。エクスポートされた識別子は他のパッケージでの使用を許可しますが、プライベート識別子は実装の詳細をカプセル化し、誤った使用を防ぎます。

Golang 中包的可见性规则是如何工作的?

Go におけるパッケージの可視性ルール

Go 言語では、パッケージの可視性ルールにより、パッケージ内の識別子 (変数、型、定数、関数など) がパッケージ アクセスの外部に存在できるかどうかが決まります。これらのルールを理解することは、モジュール式で保守可能な Go コードを作成するために重要です。

エクスポートされた識別子

エクスポートされた識別子は大文字で始まります。パッケージの外部から識別子にアクセスするには、識別子をエクスポートする必要があります。エクスポートされた識別子により、ユーザーは他のパッケージで識別子を使用できるようになり、パッケージのドキュメント (godoc) に文書化されます。

package mypkg

// 导出的变量
var ExportedVariable = 10

// 导出的类型
type ExportedType struct {
    Field1 string
    Field2 int
}
ログイン後にコピー

プライベート識別子

小文字で始まる識別子はプライベートです。これらは、定義されているパッケージ内でのみアクセスできます。プライベート識別子は、パッケージの内部実装の詳細をカプセル化し、他のパッケージで誤って使用されるのを防ぐために使用されます。

package mypkg

// 私有变量
var privateVariable = 20

// 私有类型
type privateType struct {
    Field1 bool
    Field2 string
}
ログイン後にコピー

実践例

いくつかの便利なユーティリティ関数を提供する myutils というパッケージを考えてみましょう。これらの関数をパッケージ外で使用できるようにするには、エクスポートする必要があります: myutils 的包,它提供一些有用的实用函数。要使这些函数在包外部可用,必须导出它们:

package myutils

// 导出函数
func ExportFunction() {
    // 函数逻辑
}
ログイン後にコピー

然后,可以在另一个包中导入 myutils

package main

import "myutils"

func main() {
    myutils.ExportFunction()
}
ログイン後にコピー
その後、myutils パッケージを別のパッケージにインポートして、エクスポートされた関数を使用できます:

rrreee注:

  • パッケージ名は小文字にする必要があります。
  • Go にはアクセス制御キーワード (public、private、protected など) がありません。パッケージ可視性ルールは、識別子のアクセス許可を決定します。
  • エクスポート識別子はパッケージの外部インターフェイスに影響を与えるため、注意して使用する必要があります。
  • プライベート識別子はコードのカプセル化を改善し、誤った使用を減らすことができます。
🎜

以上がGolang ではパッケージ可視性ルールはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!