エラーハンドリング【Go】
返されたエラーをifを使ってハンドリングします。
file, err := os.Open("hello.go") // 読み取り専用でファイルを開く if err != nil { log.Fatalln(err) // errが返されたらプログラム終了 } defer file.Close() data := make([]byte, 100) count, err := file.Read(data) // ファイルを読み込み、dataに格納した上で、バイトの数を返す(正確にはポインタを経由。コマンドgo doc os readでドキュメントを確認) if err != nil { log.Fatalln(err) // errが返されたらプログラム終了 } fmt.Println(count, string(data)) // バイト数と、読み込んだファイルの内容を出力
2度エラーハンドリングをしていて、かつerr変数と初期化「:=」を使用していますが、
左辺に1つでも新しい変数がある場合、定義エラーとはなりません。
errの内容は上書きされます。
errのみを返す関数の場合、次のように省略して書くこともできます。
if err := os.Chdir(); err != nil { log.Fatalln(err) }