本文へスキップ
BecomeCoder

Swift(iOSアプリ)コース · 第4章 型と関数でモデルを作る · レッスン13

関数 ― 引数ラベルとデフォルト値

ブラウザで完結

導入

同じ処理を何度も書くのは大変。処理に名前をつけて再利用できるようにするのが 関数 です。Swiftの関数は「呼び出したとき読みやすい」工夫が効いています。

説明

func 名前(引数: 型) -> 戻り値の型 { ... } で定義し、return で結果を返します。

func square(_ n: Int) -> Int {
    return n * n
}
print(square(4))     // 16

引数の前の _ は「呼ぶときにラベルを省略する」印です。ラベルを付けると、呼び出しが英文のように読めます。

func greet(to name: String, from sender: String) -> String {
    return "\(name)さんへ、\(sender)より"
}
print(greet(to: "田中", from: "佐藤"))

引数に = 既定値 を付ければ デフォルト値。省略するとその値が使われます。

func power(_ base: Int, times: Int = 2) -> Int {
    var result = 1
    for _ in 1...times { result = result * base }
    return result
}
print(power(3))          // 9(times は既定の2)
print(power(2, times: 3)) // 8

戻り値が1つの式だけなら return を省略できます(func square(_ n: Int) -> Int { n * n })。

やってみよう

greet のラベルを変えたり、powertimes を指定/省略したりして、結果の違いを確かめましょう。

演習

2つの整数を受け取って合計を返す関数 add を作り、add(7, 8) の結果(15)を print してください。

ヒント1を見る

func add(_ a: Int, _ b: Int) -> Int { a + b }

ヒント2を見る

print(add(7, 8))

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

Swift / SwiftUI — ブラウザ内で実行(学習用)

Swiftの教材サブセットを動かす学習用ランナーを読み込みます。ふつうのコードは print の出力を表示し、SwiftUI(struct: View)を書くと右にiPhone風のライブプレビューを描画します(本物のXcode/Swiftコンパイラではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。