カテゴリ: Swift 更新日: 2025/10/11

Swiftのデフォルト引数の使い方と便利な実例を完全ガイド!初心者でも安心して学べる関数の基本

Swift デフォルト引数の使い方と便利な実例
Swift デフォルト引数の使い方と便利な実例

先生と生徒の会話形式で理解しよう

生徒

「Swiftで関数を使うときに、毎回全部の引数を書かないといけないんですか?」

先生

「実はSwiftでは、引数にあらかじめ値を設定しておける“デフォルト引数”という機能があるんです。」

生徒

「あらかじめ値を入れておけるんですね!それってどうやって使うんですか?」

先生

「それでは、Swiftのデフォルト引数の使い方と便利な例を一緒に見ていきましょう!」

1. Swiftのデフォルト引数とは?

1. Swiftのデフォルト引数とは?
1. Swiftのデフォルト引数とは?

Swift(スウィフト)では、関数を定義する際に引数に「あらかじめ決めておく値」を指定できます。これを「デフォルト引数(default argument)」と呼びます。

これを使うことで、毎回すべての引数を指定する必要がなくなり、関数の呼び出しがとても簡単になります。

2. デフォルト引数の基本的な書き方

2. デフォルト引数の基本的な書き方
2. デフォルト引数の基本的な書き方

Swiftでデフォルト引数を使うには、関数の定義時に引数に「= 値」をつけます。次のような書き方です。


func greet(name: String = "ゲスト") {
    print("こんにちは、\(name)さん!")
}

この関数は、「name」に値を指定しなくても呼び出せます。


greet() // 引数なしでもOK
greet(name: "太郎") // 引数を渡すことも可能

こんにちは、ゲストさん!
こんにちは、太郎さん!

3. デフォルト引数の便利な使い方

3. デフォルト引数の便利な使い方
3. デフォルト引数の便利な使い方

デフォルト引数は、実際のアプリ開発でも非常によく使われます。たとえば、ログ出力や日付のフォーマット、ボタンの初期表示などで役立ちます。

次は、メッセージを送る関数の例です。送り先やメッセージの種類にデフォルト値を設定しています。


func sendMessage(to name: String = "未指定", message: String = "こんにちは", isUrgent: Bool = false) {
    if isUrgent {
        print("⚠️ 緊急メッセージ:\(message)(宛先:\(name))")
    } else {
        print("メッセージ:\(message)(宛先:\(name))")
    }
}

sendMessage()
sendMessage(to: "花子")
sendMessage(message: "お元気ですか?")
sendMessage(to: "太郎", message: "すぐに連絡ください", isUrgent: true)

メッセージ:こんにちは(宛先:未指定)
メッセージ:こんにちは(宛先:花子)
メッセージ:お元気ですか?(宛先:未指定)
⚠️ 緊急メッセージ:すぐに連絡ください(宛先:太郎)

このように、必要な引数だけ指定すればよく、コードがすっきりして読みやすくなります。

4. デフォルト引数の順番に注意しよう

4. デフォルト引数の順番に注意しよう
4. デフォルト引数の順番に注意しよう

デフォルト引数を使うときは、引数の順番に注意しましょう。デフォルト値のない引数は、必ず前に書く必要があります。


// 正しい例
func printInfo(name: String, age: Int = 20) {
    print("\(name)さんは\(age)歳です。")
}

// 間違った例(エラーになります)
func printInfo(age: Int = 20, name: String) {
    // デフォルト引数の後ろに通常の引数があるとダメ
}

このように、Swiftではデフォルト引数は後ろに書くのがルールです。

5. 関数のオーバーロードとデフォルト引数

5. 関数のオーバーロードとデフォルト引数
5. 関数のオーバーロードとデフォルト引数

関数の「オーバーロード」とは、同じ名前の関数を引数の数や型で使い分けることです。Swiftでは、デフォルト引数とオーバーロードは併用できますが、意図せず同じような関数が複数できてしまうと混乱の元になります。


func log(message: String) {
    print("通常ログ: \(message)")
}

func log(message: String, isDebug: Bool = false) {
    if isDebug {
        print("デバッグログ: \(message)")
    } else {
        print("通常ログ: \(message)")
    }
}

このような場合、コンパイルエラーになることがあります。関数の定義が重なってしまうからです。オーバーロードとデフォルト引数を同時に使うときは、定義の重複に注意しましょう。

6. デフォルト引数があるとコードが短くなる

6. デフォルト引数があるとコードが短くなる
6. デフォルト引数があるとコードが短くなる

たとえば、次のように複数の関数を分けて書く代わりに、デフォルト引数を使えば1つの関数でまとめることができます。


// デフォルト引数を使わない場合
func sayHelloToTaro() {
    print("こんにちは、太郎さん!")
}
func sayHelloToHanako() {
    print("こんにちは、花子さん!")
}

// デフォルト引数を使った場合
func sayHello(to name: String = "ゲスト") {
    print("こんにちは、\(name)さん!")
}

このように、コードの重複を防いでスッキリ書くことができます。これがSwiftのデフォルト引数の魅力です。

カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!