1
1

Goの簡易文付きif文について

Last updated at Posted at 2024-08-12

Goの簡易文付きif文についての個人的な考察

Goでは、簡易文付きif文を使用することで、エラーハンドリングをより簡潔に書くことができる
しかし、個人的には早期リターンを用いた従来の書き方の方が可読性が高まると考える

書き方

ReadAlbumTitle関数からの戻り値(album構造体とerror)を処理する例

簡易文付きif文
    if album, err := ReadAlbumTitle(file); err != nil {
        return err
    } else {
        albumList = append(albumList, album)
    }
従来の書き方(早期リターン)
    album, err := ReadAlbumTitle(file)
    if err != nil {
        return err
    }
    albumList = append(albumList, album)

可読性

・簡易文付きif文ではコードの簡潔さやスコープの範囲が狭まるなどの利点はあるが、以下の理由から可読性は低くなる

  1. if文の直後に、条件判定ではなく後続の処理に関わる変数宣言が来ることで、文の構造が直感に反する
  2. else があることにより、思考が混濁しやすい(処理の流れが二手に分かるため、わかりにくい)
  3. err != nilの条件が行の右端に位置し、if文の本質的な条件が把握しにくい

選び方

コードに幾つかのパターンがある場合は、理由を明確にして選ぶのが良い
・言語の文化
・チームの技量
・コード量
・ゴードの寿命 

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1