🔤

Golangで使われる省略された変数名一覧

2024/09/23に公開

はじめに

Golangのコードでは、短く省略された変数名がよく使われます。これは、Golangがシンプルで明確なコードを推奨するという設計思想に基づくものです。特に、以下のような省略された変数名が広く採用されています。本記事では、代表的なものを一覧形式で紹介し、それぞれの意味や使用例を解説します。


  1. ctx (context)
    意味: コンテキストを表す context.Context 型の変数。リクエストのタイムアウトやキャンセルなど、処理の中断を管理するために使われます。

例:

func doSomething(ctx context.Context){
    // ctx を使って処理の中断を管理する
}
  1. cfg (config)
    意味: 設定や構成情報を格納する config を意味します。アプリケーションやモジュールの設定値を扱う際に使われます。

例:

func initApp(cfg Config){
    // アプリケーションの設定情報を扱う
}
  1. err (error)
    意味: エラーハンドリングで使われる error 型の変数。Golang ではエラーチェックが非常に重要で、err は標準的な変数名です。

例:

if err != nil {
    log.Fatal(err)
}
  1. req (request)
    意味: HTTPリクエストや、任意の要求を表すための変数名。APIリクエストなどで多用されます。

例:

func handleRequest(req *http.Request){
    // HTTPリクエストを処理する
}
  1. res (response)
    意味: HTTPレスポンスや、処理の結果を表すための変数名。リクエストと対になることが多い。

例:

func handleResponse(res http.ResponseWriter) {
    // HTTPレスポンスを作成する
}
  1. db (database)
    意味: データベースの接続オブジェクトやクエリの結果を格納するための変数。データベース処理でよく使われます。

例:

func getUser(db *sql.DB, userID int) {
    // データベースからユーザー情報を取得する
}
  1. buf (buffer)
    意味: バッファを表す変数名。データの読み書きに使われるバイトや文字の配列を格納します。

例:

buf := make([]byte, 1024)
n, err := file.Read(buf)
  1. tmp (temporary)
    意味: 一時的な値やファイル、オブジェクトなどを格納する変数名。処理の途中で利用される短命なデータに使われます。

例:

tmpFile, err := os.CreateTemp("", "sample")
  1. srv (server)
    意味: サーバーオブジェクトやサーバー関連の構成を表す変数名。HTTPサーバーやTCPサーバーなどで使われます。

例:

srv := &http.Server{
    Addr: ":8080",
    Handler: myHandler,
}
  1. usr (user)
    意味: ユーザー情報を格納する変数名。ユーザーネームやユーザーIDなど、ユーザーに関するデータを扱う際に使います。

例:

usr := User{Name: "John Doe"}
  1. id (identifier)
    意味: 一意の識別子(ID)を表す変数名。主にデータベースでレコードを一意に識別するためのIDを扱います。

例:

id := 123
user := getUserById(id)
  1. fn (function)
    意味: 関数を表す変数名。関数やクロージャを格納し、他の関数に渡したり、動的に実行する際に使用します。

例:

fn := func(a int, b int) int {
    return a + b
}
result := fn(1, 2)

まとめ

Golangでは、短く簡潔な変数名が好まれる傾向があります。これは、コードをシンプルで読みやすく保つための文化ともいえます。ctxcfg などの省略形を知っておくことで、他の開発者のコードを理解しやすくなり、自分のコードもよりGolangらしく書くことができます。


この一覧を参考に、Golangの省略形を使ったコードスタイルをさらに理解し、効率的に開発を進めていきましょう!

Discussion