ここまで解説してきた関数の使い方は、一方的にただ呼び出しているだけでした。これだけでもとても便利ではありますが、場合によっては関数の中でいろいろな処理をさせて、その結果をもらいたいときがあります。要するに、呼び出しに対する返事が欲しいときがあるというわけです。
関数は、このような関数の中で処理した結果の値を呼び出し元に返す機能を持っています。そして、このようにして返す値を「戻り値」または「返り値」と呼びます。
戻り値を持つ関数を定義するには、次にように書きます。
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」を書いてはいけません。
func 一日の秒数を表示() {
   let 秒数 = 24 * 60 * 60
   return 秒数
}
 開発者向けiOS 9、WatchOS 2、Swift 2、Xcode 7の新機能と新しいApple Developer Programの参考情報まとめ
開発者向けiOS 9、WatchOS 2、Swift 2、Xcode 7の新機能と新しいApple Developer Programの参考情報まとめ iOSアプリ開発でObjective-CからSwiftに移行するための手順、注意点まとめ〜言語仕様の違いは? 連携時の呼び出し方は?
iOSアプリ開発でObjective-CからSwiftに移行するための手順、注意点まとめ〜言語仕様の違いは? 連携時の呼び出し方は? アップル、新プログラミング言語「Swift」「iOS 8 SDK」「Xcode 6」のベータ版を発表
アップル、新プログラミング言語「Swift」「iOS 8 SDK」「Xcode 6」のベータ版を発表 iOS 8 SDK、Xcode 6、Swift 1.0がGMに。Apple Pay機能の組み込み、TestFlight Beta Testingも利用可能
iOS 8 SDK、Xcode 6、Swift 1.0がGMに。Apple Pay機能の組み込み、TestFlight Beta Testingも利用可能 Swiftでの変数の定義、Xcodeでのアウトレット接続、iOSシミュレーターへの画像素材追加
Swiftでの変数の定義、Xcodeでのアウトレット接続、iOSシミュレーターへの画像素材追加 OptionalなどSwiftとObjective-Cの違いを意識してPhotos Frameworkを使う
OptionalなどSwiftとObjective-Cの違いを意識してPhotos Frameworkを使う Swiftのカスタムクラスの作り方――プロトコル、サブクラス、イニシャライザー、タイププロパティメソッドのオーバーライド、デリゲートについて注釈の作成で学ぶ
Swiftのカスタムクラスの作り方――プロトコル、サブクラス、イニシャライザー、タイププロパティメソッドのオーバーライド、デリゲートについて注釈の作成で学ぶ iOS 8アプリ開発のこれまで&Swift 1.2への対応、プロパティオブザーバーとwillSetの基本的な使い方、セグエを使った画面遷移
iOS 8アプリ開発のこれまで&Swift 1.2への対応、プロパティオブザーバーとwillSetの基本的な使い方、セグエを使った画面遷移 外から見るWWDC 2014キーノート――Swiftに感じるAppleの本気
外から見るWWDC 2014キーノート――Swiftに感じるAppleの本気 Excelでプログラム作成を始めるメリットとマクロの基本
Excelでプログラム作成を始めるメリットとマクロの基本Copyright © ITmedia, Inc. All Rights Reserved.