関数は一つ以上の結果を返すことが出来る。
これまでに、2つ以上の値を結果として返す標準pkg内の関数の例をみることが出来る、計算された結果とそのエラーの値もしくは、計算が機能したかどうかを示すブール値など。
https://github.com/adonovan/gopl.io/blob/master/ch5/findlinks2/main.go
4つのreturn があり、それらは結果のペアを返す。
上の3つのreturnは、http と html パッケージの元のエラーを通ることで引き起こされた。
ひとつ目のerrは、変更されていないが、2つめ3つめは fmt.Errorf によってコンテキストの情報を付加させて拡張されています。
もし、 findLinks が成功すると、最後のreturnはlinksのスライスとエラーがないことを返します。
どのエラーのケースでもネットワークリソースが適切に開放するために、resp.Body は必ずクローズしなければならない。
Goのガベージコレクタは使用していないメモリを回収するが、使用されていない開かれているファイルやネットワークのコネクションのようなOSのリソースも開放すると想定してはいけない。
しかし、それらは明示的に閉じれなければならない。