こんにちは。Tomoyuki(@tomoyuki65)です。
Go言語(Golang)のプログラミングを学ぶ際に、他のプログラミング言語とは違う癖のある部分が色々あったりすると思います。
私も初めて学んだ際には「これってどういうこと??」というのが色々あったので、この記事ではそれらをまとめておきます。
※何かあれば随時追加予定です。
Go言語(Golang)のプログラミングで癖のあるポイントまとめ
関数名の1文字目が大文字と小文字について
Go言語では関数を作る際に、関数名の1文字目を大文字にする場合と小文字にする場合があります。
func testFunc1() { ・・・ } func TestFunc2() { ・・・ }
これについて、関数名の1文字目が大文字の場合はエクスポートされ、他のパッケージから使用できるようになります。
逆に小文字にしてしまうと外部ファイルから使えなくなるため、その点は注意して関数名を付けて下さい。
import時のライブラリ名の前に付けるアンダースコア “_” について
ライブラリをimportする際に、ライブラリ名の前にアンダースコア “_” が付いていることがあります。
import (
_ "fmt"
)
これは空白インポートと呼ばれる機能で、ライブラリの初期化は行いますが、そのライブラリの機能をコード内で直接使用しない場合に使います。
例えばパッケージにはInit() 関数を含めることができ、パッケージがロードされたときに自動的に実行されます。空白インポートはこのInit() 関数を呼び出すために使用されます。
internalディレクトリについて
Goでディレクトリ名にinternalを付ける場合があります。
a
├── src
│ ├── config
│ ├── internal
│ │ ├── handlers
│ │ ├── repositories
│ │ └── services
│ ├── go.mod
│ ├── go.sum
│ └── main.go
│
├── b
└── c
internalディレクトリは内部パッケージとして扱われ、外部パッケージからはアクセスできません。プロジェクト固有の機能やユーティリティを整理したり、名前空間の衝突を防いだりできます。(上記の例の場合、bやcからinternalパッケージはアクセスできない)
最後に
今回はGo言語(Golang)において癖のあるポイントについてご紹介しました。
また何かあれば随時追加していきますが、これからGo言語を学び始める方はぜひ参考にしてみて下さい。
コメント