コース目次 / 第2章
最初の実行 — コンパイルするということ
go mod init と go run を通して、コンパイル言語のリズムをつかみます。
PlaygroundではRunを押すだけでした。手元では、もうひと手間が入ります。それがコンパイル言語ということです。
ミニ解説: コンパイルって何をしている?
Python(その場で通訳)
あなたのコード ──→ Pythonが1行ずつ読んで実行
(Pythonが入っていないPCでは動かない)
Go(先に翻訳)
あなたのコード ──→ [コンパイル] ──→ 機械が直接読める1個のファイル
(Goが入っていないPCでも動く)先にまとめて機械語に翻訳しておく。それがコンパイルです。ひと手間かかるかわりに、速く動き、配れる1個のファイルができます。この章の最後と第4章で、その両方を体験します。
1. プロジェクトの印を作る
link-check フォルダを VS Code で開いた状態で、ターミナルに打ちます。
link-check フォルダの中(cd ~/Desktop/link-check)で打ちます。
行頭の $ は「ここからコマンド」という目印です。$ は打たないでください。
go.mod というファイルができます。
module linkcheck
go 1.262行目の数字は、あなたが入れたGoのバージョンになります。go 1.26.5 のように細かい数字が入ることもあります。教材と違っていて正解なので、書き換えなくて大丈夫です。
これは1回だけのおまじないです。「このフォルダは linkcheck という名前の、1つのGoプロジェクトです」という宣言。意味が分からなくても構いませんし、二度と触りません。
2. 書く
hello.go を作ります。
ターミナル派の方
行頭の $ は「ここからコマンド」という目印です。$ は打たないでください。
エディタは nvim でなくて構いません。お好みのエディタのコマンドに読み替えてください。
package main
import "fmt"
func main() {
fmt.Println("はると のリンクチェッカー、起動")
}字下げがタブになっているのに気づいたかもしれません。Goは gofmt という公式の整形係がタブを使うので、それに従います。VS Code に Go 拡張を入れておくと、保存するたびに自動で整えてくれます(拡張機能で「Go」を検索してインストール。無くても進められます)。崩れても gofmt -w hello.go を打てば整います。Neovim に gopls を入れていれば保存のたびに整えることもできますが、無くても進められます。
3. 走らせる
行頭の $ は「ここからコマンド」という目印です。$ は打たないでください。
文字が出れば成功です。
go run . は「このフォルダをコンパイルして、そのまま実行する」という意味です。開発中はこれを使います。
4. 書き換えて、もう一度
はると を自分の名前に変えて保存し、もう一度 go run . を打ってください。
待たされた感じがしないはずです。コンパイルしているのに一瞬で終わる——これがGoの自慢のひとつで、「コンパイル言語なのに待たない」ことが選ばれる理由になっています。
ハマったら
「go.mod file not found」と出る
go mod init linkcheck を打ち忘れているか、別のフォルダで打っています。VS Code で link-check フォルダを開き直してから、もう一度打ってください。cd ~/Desktop/link-check で移動してから、もう一度打ってください。
「expected ‘package’, found …」と出る
.go のファイルは必ず package main から始まります(このコースでは全部 main です)。1行目を確認してください。
ZIPで戻したい
このページの下のZIPは、この章を終えた状態のフォルダです。解凍して、その中で作業を続けられます。自分で書き換えた部分は消えてしまうので、先に自分のファイルを別の場所へ待避してから使ってください。
こうなっていればOK
うまくいかないときは、この章の完成ファイル一式(ZIP)をダウンロードして続きから進めても大丈夫です。
卒業まであと2章です。
この章はまだ完了していません。