タイトルの表現があってるか微妙ですがgoでなんか書いたことがある人なら一度は考えるこういうやつ
package main import ( "errors" "fmt" ) func hoge(is bool) (hoge bool, err error) { if is { return is, errors.New("Error HOGE") } else { return is, errors.New("Error FOO") } } func main() { hage, err := hoge(true) fmt.Println("hage = ", hage) fmt.Println("err = ", err) foo, err := hoge(false) fmt.Println("foo = ", foo) fmt.Println("err = ", err) }
要はerrは使いまわしたいけど先頭の変数は新規に作りたいやつ。昔これできなかった気がするんですけど
勘違いでちゃんとできた(errは同じメモリ空間上の変数が新規作成されずに使い続けられるという期待する動作をする)らしい。あはれ、しつるせうとくかな。年ごろはわろく書きけるものかな。。。*1
*1:過去に書いたゴミコードを直したい。。。