@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Go: if err := expr; err != nil { } // initialization statement

戻り値が error 一つの関数を呼び出してエラーチェックする際、以下の二種類の書き方がある。

  1. err := expr で受け、改行し、 if err != nil { } でエラーチェックする
  2. if err := expr; err != nil { } とワンライナーでエラーチェックする

このうち 2 のやり方の呼び方が知りたかった*1

if err := expr; の部分は initialization statement と呼ぶらしいので、 2 のエラーチェック方法は if with initialization statement と呼ぶことにした。

package main

import "os"

func main() {
    err := os.Chdir("/tmp")
    if err != nil {
        return
    }
 
    if err := os.Chdir("/tmp"); err != nil {
        return 
    }
}

でも、 When Should I Use One Liner if...else Statements in Go? - Calhoun.io に倣って? one liner if statement と呼ぶのでも良いかもしれない。

*1:1 から 2 に書き方を変更する際のコミットログメッセージとして