Dev Study
Go コース

16. 複数戻り値 — (値, error) パターンの導入

Go の関数は複数の値を同時に返せます。戻り値の型を func divide(a, b int) (int, error) のようにかっこで囲んで並べ、return 結果, エラー のようにカンマ区切りで返します。呼び出し側も result, err := divide(...) のように複数の変数で受け取ります。

この仕組みが最もよく使われるのが「(結果, error)」の形です。Go には例外がなく、失敗する可能性のある処理は処理結果とエラーをペアで返すのが慣習です。成功したときは error に nil(エラーがないことを表す値)が入り、失敗したときは原因を表す error が入ります。呼び出し側は if err != nil { ... } でエラーを確認してから結果を使います。

エラーを作るには errors.New や fmt.Errorf を使います。下のコードでは 0 で割ろうとしたときにエラーを返し、呼び出し側でそれを検査しています。このパターンは Go のエラー処理の基本なので、形をしっかり覚えておきましょう。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

Go
公式ドキュメントで詳しく ↗