Go言語100Tips ありがちなミスを把握し、実装を最適化する の No.43と44を読んだ。第6章 関数とメソッドの続き。
No.43, 44 は名前付き結果パラメタの使い方について。
名前付き結果パラメタとは、関数の返り値に名前をつけることで、こう言った感じの書き方。
func f(a int) (b int) { // int の結果パラメタに b という名前をつける
b = a
return // bの現在の値を返す
}
この書き方は、あまり使われない。と、いうのも、思わぬバグを引き起こすことがあるからだ。
結果パラメタに名前をつけると、その変数は関数が呼び出された時にゼロ値で初期化される。それなのに、必要な値をセットしないでreturnすると、ゼロ値のままreturnしてしまう。これはコンパイルエラーにはならないため、簡単に見つけることはできない場合もある。
そんな、危険な名前付き結果パラメタだが、インターフェースを定義する場合は名前付き結果パラメタにすると、コードの可読性を上げることができる。
このように、名前付き結果パラメタは使うべきか使わないべきかを慎重に考えて使うことが要求される。