ホームページ >バックエンド開発 >Golang >Go 関数は大文字の名前でパブリックですが、パッケージは小文字の名前でプライベートになるのはなぜですか?

Go 関数は大文字の名前でパブリックですが、パッケージは小文字の名前でプライベートになるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-26 15:26:12139ブラウズ

Why Are Go Functions Public with Uppercase Names but Packages Private with Lowercase Names?

Go のパブリック アクセス修飾子とプライベート アクセス修飾子: 大文字と小文字の混同

Delphi または C から Go に移行する場合のルールの理解アクセス修飾子の管理は困難な場合があります。特に混乱を招くのは、パブリック アクセスとプライベート アクセスを示す大文字と小文字の使用です。

アクセス修飾子のルール:

Go では、パブリック アクセスは大文字で表すことによって実現されます。関数または型の名前。たとえば、myFunc という名前のパブリック関数は func MyFunc() と記述されます。

コンテナ クラス例外:

ただし、container/list などのコンテナ クラスを使用する場合は、 、ルールが破られているようです。コンテナータイプ名の List はパブリックアクセスを示すために大文字で書かれていますが、パッケージ名のcontainer/list は小文字で書かれています。この不一致は混乱を招く可能性があります。

説明:

Go では、パッケージは型とは異なります。パッケージ名は、パッケージのコードが存在するファイルとディレクトリを示します。パッケージ名は通常、パッケージ パスの最後の部分と同じですが、常にそうとは限りません。

パッケージのパブリック メンバーには、大文字の型名を使用してアクセスします。この例では、container/list がパッケージ パスで、List がパブリック型名です。小文字のリストはパッケージのエイリアスで、コード内でリストとして参照できるようにします。

したがって、 func GetFactors(value *int64) *list.List {...} および l : = list.New() は両方とも有効です。List はコンテナ/リスト パッケージ内のパブリック型であり、list はそのパッケージのエイリアスであるためです。

以上がGo 関数は大文字の名前でパブリックですが、パッケージは小文字の名前でプライベートになるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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