はじめに
こんにちは、クラウド事業部の中根です!
最近OSSを利用することが多くなり、Goを読めるようになりたいなと思っていました。
これまで生成AIでなんとか乗り切ってきましたが、先日やっと入門したので、わかったことを共有します。
どんな記事?
Goを書けなくても、とりあえず読めるようになることを目指して、以下を紹介します。
- Goを読めるようになるまでにやったこと
- 個人的最初におさえておくべきポイント
※本記事は約1200文字で、2~3分で読めます!
どんな人に読んでほしい
- 今すぐGoを読めるようになりたい人
- 1からじっくり学ぶのはめんどくさい人
- 何かしらのプログラミング言語の経験がある人
実際にやったこと
1. A Tour of Go
全部丁寧にやる必要はなく、ざっと流す程度で良いと思います。
Basics全部と、Struct(構造体)、Methods関連は少し丁寧にやっておくのがおすすめです。
2. 実践
あとは実際のソースを題材に、わからない部分を調べながら読んでみました。
後述の「おさえておくべきポイント」はこの時の経験から作成しました。
参考:私はこちらを題材にしました。
個人的おさえておくべきポイント
以下のポイントをおさえてから、「読めるようになってきた」感覚がありました。
詳細な解説はしませんので、手がかりとして使っていただければと思います。
※プログラミング言語の経験によって異なる可能性が高いです。
(筆者はJava、JavaScriptの経験があります。)
変数定義の省略記法「:=」
# 省略なし var s string = "文字列" # 省略あり s := "文字列"
「型 変数名」ではなく「変数名 型」の順番
多くのプログラミング言語と逆です。
構造体
- ≒ クラス
- Goにはクラスがない
関数とメソッドの違い
- 関数≠メソッド
- メソッドは型に紐づく関数
関数
func main() { <処理> }
メソッド
# 型が必要(構造体が多く使われるが、それ以外でも使える) type Sample struct { X, Y string } func (s *Sample) SampleFunc() string { <処理> }
パッケージ(pkg)
- 1ディレクトリ=1パッケージ
- 大文字で始まる変数はパッケージ外からアクセス可能
どこから読めばいい?
- まずはルートディレクトリか、cmdディレクトリにあるmain.goを読む
- 見覚えのない変数は、pkgディレクトリ内のどこかにいる
- import句も参照する
- ディレクトリ構成の標準も参考になる
終わりに
Goを読めるようになるためのポイントを紹介しました。
OSSコードリーディングの最初の第0.1歩になれば幸いです!