概要
Tour of Go の - Functions についてのサンプル。
Goでは、関数は第一級のオブジェクトです。
なので、変数にも入れられるし、パラメータとしても渡せるし、戻り値としても使える。
この辺は最近の言語では普通ですね。
Goの関数は、戻り値を複数返すことが出来ます。
Goには、例外の仕組みが意図的に存在しないので、エラーが発生した情報は戻り値で知らせることになります。
なので、通常関数はエラー情報も返すため
func Hoge(引数) (結果, error) { ... }
のように、error 型を返すのが多いですね。
サンプル
package tutorial import "fmt" // Functions は、 Tour of Go - Functions (https://tour.golang.org/basics/4) の サンプルです。 func Functions() error { // ------------------------------------------------------------ // 関数は、0個以上の引数を受け取ることができ、0個以上の戻り値を返すことが出来る // 関数は、予約語 func を指定して signature を定義する。 // ------------------------------------------------------------ oneParamVoidReturn(100) fmt.Println(oneParamOneReturn(100)) fmt.Println(multiParamMultiReturn(100, 200)) fmt.Println(multiParamMultiReturnWithReturnNames(100, 200)) var ( x, y = 100, 200 ) swap(&x, &y) fmt.Println(x, y) return nil } // 引数を一つ受け取り、戻り値なしの関数 func oneParamVoidReturn(x int) { fmt.Println("oneParamVoidReturn", x) } // 引数を一つ受け取り、一つの戻り値を返す関数 func oneParamOneReturn(x int) int { return x * x } // 複数の引数を受け取り、複数の戻り値を返す関数 func multiParamMultiReturn(x, y int) (int, int, int) { return x, y, x + y } // 複数の引数を受け取り、複数の戻り値を返す関数だが、戻り値の部分にも予め名前を指定しておくことが出来る // この場合、予め戻り値は確保されているので、関数を終了する場合 return とのみ記載することが可能 func multiParamMultiReturnWithReturnNames(x, y int) (rx, ry, rsum int) { rx = x ry = y rsum = x + y return } // 指定された 2つの値 を入れ替え func swap(x, y *int) { *x, *y = *y, *x }
try-golang/tutorial_gotour_04_functions.go at master · devlights/try-golang · GitHub
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場