タグ

2018年8月26日のブックマーク (1件)

  • Go言語の例外を必ず扱うような言語機能のありがたさ - 日記マン

    僕はGo言語が好きだ。そのGoがもたらす恩恵のひとつとして、例外周りのセマンティクスがある。 Goでは例外はerrorという型の値に抽象化され関数の返り値として記述することが多いというのはご存知だと思う。 func GetUser(id int) (*User, error) { // do some thing ... if err != nil { return nil, err } return user, nil } 上記の例のように、複数の返り値を設定できる言語機能を利用して、 第一にその関数に期待する主要な出力のデータ、第二に関数内で発生した例外(error型の値)を伝播させるのが一般的な記述だ。 この if err != nil {return err} を毎回書くのが(たとえコピペでも) 「めんどくさい」、「冗長だ」という意見を持つプログラマもスクなくはない。 個人的には気

    Go言語の例外を必ず扱うような言語機能のありがたさ - 日記マン
    darupants
    darupants 2018/08/26