Named Results

メソッドの引数、複数宣言するときは型をまとめられる。 あと戻り値の型宣言も複数できる。複数返ることがわかりやすくていいね。 そして戻り値の宣言時に名前をつけられる。名前をつけた場合は、そのメソッドの同名ローカル変数がそのままreturnで戻る。

package main

import "fmt"

func hoge(x, y int) (sum, diff int) {
  sum = x + y
  diff = x - y
  return
}

func main() {
  fmt.Println(hoge(10, 6))
}
% go run hoge.go
16 4

最初メソッド大文字始まりちょっと違和感あったけど、メソッドの大文字はパッケージ外に対してpublic, 小文字はprivateみたいな扱いらしい。 まだスコープがよくわかっていない。