Go 言語を公式チュートリアルで始めてみる 1 (Tutorial: Get started with Go)
記事概要
Go入門者が公式チュートリアルのTutorial: Get started with Goを実施した時の手順と
調べたことを備忘録として残したものです。
チュートリアルの範囲はGoの導入、Hello Worldと外部パッケージを使うところまでです。
リポジトリはこちら
Goの導入
各環境向けにパッケージが用意されています。
環境に併せてインストールしてください。
私はdockerで環境を作ってvscodeのリモートコンテナ機能で
コンテナにアタッチして作業しました。
docker-compose.yml
version: '3.7'
services:
go:
image: golang:1.19.2-bullseye
volumes:
- ./:/projects/
working_dir: /projects/go
tty: true # コンテナが終了しないように
何はともあれ Hello World
まずはhello world用のディレクトリを作って移動します。
mkdir hello && cd hello
最初にモジュールの初期化を行います。
go mod init example/hello
ヘルプ(go help mod init
)によると、カレントディレクトリに依存関係などを記載するgo.modファイルを作成し、
カレントディレクトリをルートとする新しいモジュールを作ることを意味するようです。
example/hello
の部分はモジュールパスと呼ばれていて、一般的に以下の形をとるようです。
<prefix>/<descriptive-text>
<prefix>
にはモジュールの起源を表す文字列(作者名、会社名、ドメインなど)を指定して、
descriptive-text
にはプロジェクトの説明を指定するとのこと。
ただし、モジュール公開する場合は <prefix>
にリポジトリを指定することが必須。
詳細はこちら
https://go.dev/doc/modules/managing-dependencies#naming_module
hello.goを作成
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
hello.goを実行
> go run .
Hello, World!
無事表示されました。
go run
コマンドでは main パッケージのmain関数がデフォルトで実行されるようです。
外部パッケージの探し方
Goパッケージの検索サイトにアクセス。
テキストボックスに quote
を入力して検索。
検索結果から quote (rsc.io/quote/v4) を探して、
Other major versions から v1 をクリックする。
過去のバージョンや機能一覧などがみられる。
外部パッケージを使ってみる
hello.go に rsc.io/quote のインポートの追加と、
quote のGo関数の呼び出しを追加する。
package main
import "fmt"
import "rsc.io/quote"
func main() {
fmt.Println(quote.Go())
}
依存関係の更新する。
go mod tidy
なお tidy は ティディ じゃなくて タイディ とのこと。
英語「tidy」の意味・読み方・表現 | Weblio英和辞書
ヘルプ(go help mod tidy
)によるとimport対象のモジュールの過不足があればダウンロードや削除を行い、
go.mod/go.sumも併せて更新してくれる模様。
npmみたいに一々明示的にパッケージを指定してインストールしたりアンインストールしなくていいのは便利!
一旦ここまでで Tutorial: Get started with Go
は終わりとなります。
諸先輩方におかれましては間違っているところや補足などありましたらコメントお願いします。
Discussion