公式ドキュメントを見ながらチュートリアルを進めていく。
https://go.dev/doc/
※私はWindowsでPowerShellを使います。
インストール
https://go.dev/dl/
Featured downloadsからWindows向けのインストーラ(.msi)をダウンロード
ダブルクリックしてNextを押していってインストール
PowerShellから「go version」を実行してバージョンが表示されたらインストール完了
チュートリアル
https://go.dev/doc/tutorial/getting-started
・PowerShellを起動
起動した状態のディレクトリのまま作業する(例: C:\Users\yourname)
・作業用ディレクトリ作成
mkdir golearn
(最初、mkdir goで作業したら、goが使うデフォルトのディレクトリ名と被って失敗した、、)
・モジュール初期化(依存関係の追跡を有効にする)
go mod init example/hello
(よくわからんが、やる)
golearn/go.modが作成される
go/pkg/mod/cache/lockも作成される
・golearn/hello.goファイルを作成して、コード書いて保存
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
VSCodeで書いたら、ほとんど補完してくれたので楽
・実行
go run .
を実行して「Hello, World!」が表示されるのを確認
外部のパッケージを使いたい場合
・パッケージを探す
https://pkg.go.dev/search?q=quote
たとえば「quote」で検索
READ MEやドキュメントでどんなパッケージか確認
・コード上でインポートする
package main
import "fmt"
import "rsc.io/quote"
func main() {
fmt.Println(quote.Go())
}
golearn/hello.goを一部修正
・モジュールを使えるようにする
go mod tidy
を実行すると、モジュールがダウンロードされる
・再実行するとエラーになる
go run .
Don't communicate by sharing memory, share memory by communicating.
たぶんわざとそうしてると思うが、
fmt.Println(quote.Go())
を
fmt.Println(quote.Hello())
に変えると、「Hello, world.」が表示される