「A Tour of Go をやる!」シリーズの第7回目。
前々回から引き続きになりますが、今回も「Function」絡み。戻り値な内容です。
内容的には今回も薄くて済みそうなのでサッサと走り抜けます。
今回進めるページは「Multiple results」
A Tour of Go の該当ページはこちら。
「Multiple results」とは何か?
今回のタイトル「Multiple results」ですが、「ファンクションの戻り値として複数返すことができるよ!」、、、的な意味のようです。
戻り値に関する言語仕様
では言語仕様を確認してみます。
下記は「Return statements」の項目からの抜粋ですが、赤字の箇所に1つ以上の結果値(戻り値)を返せると記載があります。
A “return” statement in a function F terminates the execution of F, and optionally provides one or more result values. Any functions deferred by F are executed before F returns to its caller.
https://golang.org/ref/spec#Return_statements
(関数Fの「return」ステートメントはFの実行を終了し、オプションで1つ以上の結果値を提供します。 Fによって延期された関数は、Fが呼び出し元に戻る前に実行されます。) by Google Translated.
続いてサンプルプログラムを見ていきます。
サンプルプログラムを見てみる
お題に関係する箇所にコメント打ってます。
package main
import "fmt"
// (string, string) は戻り値のパラメータ定義
func swap(x, y string) (string, string) {
// パラメータ通りで戻り値が複数ある
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
ファンクション swap は 引数として2つの文字列を受け取り、戻り値として返却する際に順番を入れ替えて返却しています。
うーん、、、捻りがないですな。( ゚Д゚)y─┛~~
さいごに
というわけで、今回は 戻り値は複数イケますよ、、、という内容でした。
複数戻り値の仕様、あまり見かけないので珍しいのかもしれないですね。
そんなところで、また次回~ ٩( ‘ω’ )و
コメント