見出し画像

golang privateとpublicの使い方と注意点

Go言語において、変数、関数、型の可視性は、その名前が大文字から始まるか小文字から始まるかによって決まります。
これは他の多くのプログラミング言語に見られるpublicやprivateのキーワードに相当するものです。


Public(公開)

定義

識別子が大文字で始まる場合、それは公開されています。
これにより、他のパッケージからその変数、関数、または型にアクセスすることができます。


使い方

パッケージ外からアクセスを許可したい関数や型は、名前を大文字で始めます。

package math

var Pi = 3.14159

func Sum(numbers []int) int {
    total := 0
    for _, num := range numbers {
        total += num
    }
    return total
}


Private(非公開)

定義

識別子が小文字で始まる場合、それは非公開です。
同じパッケージ内からのみアクセス可能で、外部からはアクセスできません。


使い方

パッケージ内部でのみ使用する変数や関数は、名前を小文字で始めます。

package math

func secretFormula(x int) int {
    return x * x
}


注意点

パッケージ設計

複数の関数や型が互いに密接に関連している場合、それらを適切に整理し、一つのパッケージ内にまとめることで、可読性と管理のしやすさを向上させることができます。


APIの安定性

公開APIの変更は後方互換性に影響を与える可能性があるため、公開するAPIは慎重に設計する必要があります。互換性を保つためには、公開された関数や型のシグネチャを突然変更しないように注意する必要があります。


セキュリティ

パッケージ外からアクセスすべきでない情報は、必ず非公開にしましょう。これにより、不正な利用を防ぎ、システムの安全性を高めることができます。


golangをもっと詳しくなりたい方に

初めてのGo言語

Go言語の入門から応用まではこの一冊で網羅されています。説明も順序立てて説明されており完成度の高い参考書となっています。


詳解Go言語Webアプリケーション開発

こちらはGo言語の基礎知識を得たあとに読むことをすすめる本となっています。ハンズオン形式で手を動かしながら実装をしていくことができるため、実際の開発を意識しながらGo言語を学ぶことができます。

以下の記事では他にも筆者が実際に読んでおすすめしたい本をまとめています。


【Go入門】Golang基礎入門 + 各種ライブラリ + 簡単なTodoWebアプリケーション開発(Go言語)

まだGo言語の勉強を始めていない方、全くの初心者の方にはこちらのUdemy教材が最もおすすめです。
この教材ではgolangの基礎について網羅的に学ぶことができます。ただ見て学ぶだけでなく、講座の中でアプリ作成まで行うことで学んだことの理解をさらに深めることができます。


現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発

個人的に最も勉強になったのは「現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発」という教材です。
本格的なレクチャーに入る前に、なぜGoなのか、なぜFintechなのかについて説明されていることで、Goの概念や意味について大枠から理解することができます。

以下の記事では筆者が実際に受講したおすすめUdemy教材をまとめています。

※本ページではアフィリエイトリンク(PR)が含まれています


この記事が参加している募集

この経験に学べ

この記事が気に入ったらサポートをしてみませんか?