APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【3分でわかる】めんどくさがりのための、Goを読めるようになるまで

はじめに

こんにちは、クラウド事業部の中根です!
最近OSSを利用することが多くなり、Goを読めるようになりたいなと思っていました。
これまで生成AIでなんとか乗り切ってきましたが、先日やっと入門したので、わかったことを共有します。

どんな記事?

Goを書けなくても、とりあえず読めるようになることを目指して、以下を紹介します。

  • Goを読めるようになるまでにやったこと
  • 個人的最初におさえておくべきポイント

※本記事は約1200文字で、2~3分で読めます!

どんな人に読んでほしい

  • 今すぐGoを読めるようになりたい人
  • 1からじっくり学ぶのはめんどくさい人
  • 何かしらのプログラミング言語の経験がある人

実際にやったこと

1. A Tour of Go

go-tour-jp.appspot.com

全部丁寧にやる必要はなく、ざっと流す程度で良いと思います。
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歩になれば幸いです!