🐹 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 ./...