A Tour of Go をやる! – その7 「Multiple results」 一粒で二度美味しい? 【Go言語/A Tour of Go】

記事ヘッダー_Multiple_results IT

「A Tour of Go をやる!」シリーズの第7回目。

前々回から引き続きになりますが、今回も「Function」絡み。戻り値な内容です。
内容的には今回も薄くて済みそうなのでサッサと走り抜けます。

- PR -

今回進めるページは「Multiple results」

A Tour of Go の該当ページはこちら。

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.
(関数Fの「return」ステートメントはFの実行を終了し、オプションで1つ以上の結果値を提供します。 Fによって延期された関数は、Fが呼び出し元に戻る前に実行されます。) by Google Translated.

https://golang.org/ref/spec#Return_statements

続いてサンプルプログラムを見ていきます。

サンプルプログラムを見てみる

お題に関係する箇所にコメント打ってます。

Go
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)
}
Expand

Go Playground

ファンクション swap は 引数として2つの文字列を受け取り、戻り値として返却する際に順番を入れ替えて返却しています。
うーん、、、捻りがないですな。( ゚Д゚)y─┛~~

さいごに

というわけで、今回は 戻り値は複数イケますよ、、、という内容でした。
複数戻り値の仕様、あまり見かけないので珍しいのかもしれないですね。

そんなところで、また次回~ ٩( ‘ω’ )و

コメント

タイトルとURLをコピーしました