プログラミング入門20 戻り値

関数に「戻り値」を付ける

戻り値とは

 ここまで解説してきた関数の使い方は、一方的にただ呼び出しているだけでした。これだけでもとても便利ではありますが、場合によっては関数の中でいろいろな処理をさせて、その結果をもらいたいときがあります。要するに、呼び出しに対する返事が欲しいときがあるというわけです。

 関数は、関数の中で処理した結果の値を呼び出し元に返す機能を持っています。そして、返す値を「戻り値」または「返り値」と呼びます。

戻り値付き関数の定義の仕方

 戻り値を持つ関数を定義するには、次にように書きます。

func 関数の名前() -> 戻り値の型 {
// 実行する処理
return 戻り値
}

戻り値付きの関数の定義
 まず、「()」の後に半角スペースを空けてから「->」を書きます。その後に半角スペースを空けてから戻り値の型名を書きます。そして、関数の中のプログラムの最後の行に「return」と書き、半角スペースを空けてから関数の呼び出し元に返したい値を書きます。

戻り値付きの関数の呼び出し

 まずは簡単なプログラムから書いてみましょう。

func 一日の秒数() -> Int {
let 秒数 = 24 * 60 * 60
return 秒数
}
 この関数は、一日の秒数を計算しています。その計算結果をInt型の値(整数値)として呼び出し元に返すようにしています。

 この関数を呼び出すには、これまでと同じように書くだけです。

一日の秒数()
戻り値の受け取り方

 しかし呼び出しただけでは、せっかく値を返してもらった意味がありません。次のように書くことで、呼び出した関数から返された値を定数(または定数)に代入することができます。

let 秒数 = 一日の秒数()
println("一日は\(秒数)秒!")

戻り値付きの関数の呼び出し
 なお、上記の関数の中の処理では「秒数」という定数に計算結果を代入してから返していますが、「return」の後に計算式をそのまま書くこともできます。この方が、短くまとまりますね。

func 一日の秒数() -> Int {
return 24 * 60 * 60
}
戻り値付きの関数の間違った書き方

 また、戻り値付きの関数を定義するとき、関数の中の処理の最後に必ず「return」と戻り値を書かなければいけません。そのため、次のような関数を定義するとエラーになります。

func 一日の秒数を表示() -> Int {
let 秒数 = 24 * 60 * 60
println("一日は\(秒数)秒!")
}

戻り値付きの関数にreturnを書かなかった場合
 反対に、戻り値を返さない関数の中に「return」を書いてはいけません。

func 一日の秒数を表示() {
let 秒数 = 24 * 60 * 60
return 秒数
}