🐹 Goチートシート

基本構文

構文用途
var x int変数宣言var name string = "Go"
x := 値短縮宣言age := 15
const定数const Pi = 3.14
fmt.Println()出力fmt.Println("Hello")
fmt.Sprintf()フォーマットfmt.Sprintf("%s: %d", name, age)

制御構文

構文用途
if条件分岐if x > 0 { ... }
for繰り返し(唯一のループ)for i := 0; i < 10; i++ { ... }
for rangeコレクション走査for i, v := range slice { ... }
switch多分岐switch x { case 1: ... }

データ構造

用途
[]T (slice)可変長配列nums := []int3
map[K]Vキーと値のペアm := map[string]int{"a": 1}
struct構造体type User struct { Name string }
append()スライスに追加nums = append(nums, 4)
len()長さ取得len(nums)

関数

構文用途
func name() T関数定義func add(a, b int) int { return a + b }
複数戻り値複数の値を返すfunc div(a, b int) (int, error)
defer関数終了時に実行defer file.Close()
func()無名関数fn := func(x int) int { return x * 2 }

並行処理

構文用途
go func()goroutine起動go doWork()
chan Tチャネルch := make(chan int)
ch <- vチャネルに送信ch <- 42
v := <-chチャネルから受信result := <-ch
select複数チャネル待機select { case v := <-ch: ... }

エラーハンドリング

構文用途
errorエラー型if err != nil { return err }
errors.New()エラー作成errors.New("not found")
fmt.Errorf()エラーラップfmt.Errorf("wrap: %w", err)
panic / recover致命的エラーpanic("fatal error")

パッケージ管理

コマンド用途
go mod initモジュール初期化go mod init myapp
go getパッケージ追加go get github.com/gin-gonic/gin
go buildビルドgo build -o app .
go run実行go run main.go
go testテスト実行go test ./...

← チートシート一覧に戻る