カテゴリ: Swift 更新日: 2026/09/10

Swiftの可変長引数(Variadic Parameters)とは?初心者向けにやさしく解説!

Swift 可変長引数(Variadic Parameters)の使い方
Swift 可変長引数(Variadic Parameters)の使い方

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

生徒

「Swiftで、複数の値を一つの関数に渡したいときってどうすればいいですか?」

先生

「その場合は『可変長引数(かへんちょうひきすう)』という仕組みを使いますよ。」

生徒

「可変長引数ってなんですか? むずかしそう……」

先生

「安心してください。初心者でも分かるように、簡単な例を使って説明しますね!」

1. Swiftの可変長引数(Variadic Parameters)とは?

1. Swiftの可変長引数(Variadic Parameters)とは?
1. Swiftの可変長引数(Variadic Parameters)とは?

Swift(スウィフト)の可変長引数(Variadic Parameters)とは、「引数の数があらかじめ決まっていない関数」を作るための仕組みです。通常の関数では、渡す値の個数は固定されていますが、可変長引数を使うと、1個でも複数個でも柔軟に値を受け取れるようになります。

たとえば、「テストの点数をまとめて受け取る」「入力された数字をすべて表示する」など、データの個数が実行するまで分からない場面で特に役立ちます。プログラミング未経験の方でも、『何個あってもOKな引数』と考えるとイメージしやすいでしょう。

実際には、関数の中では可変長引数は自動的に配列として扱われます。そのため、あとから1つずつ取り出して処理することができ、初心者でも直感的に使えるのが特徴です。


func greet(names: String...) {
    for name in names {
        print("こんにちは、\(name)さん")
    }
}

この例では、namesに何人分の名前を渡しても動作します。「人数が決まっていないけれど、同じ処理をしたい」という場面で、可変長引数はとても便利な機能です。

2. 可変長引数の書き方と基本構文

2. 可変長引数の書き方と基本構文
2. 可変長引数の書き方と基本構文

Swiftでは、関数に渡す引数の数が決まっていない場合に「可変長引数(かへんちょうひきすう)」を使います。書き方はとてもシンプルで、引数の型の後ろに...(ピリオド3つ)を付けるだけです。これにより、0個でも複数個でも値を受け取れる関数を定義できます。

たとえば、整数をいくつでも受け取り、順番に表示する関数は次のように書けます。


func printNumbers(numbers: Int...) {
    for number in numbers {
        print(number)
    }
}

Int...と書かれた引数は、関数の中では配列([Int])として扱われます。そのため、for文を使って1つずつ取り出すことができます。

呼び出す側では、配列を意識する必要はなく、次のように値をカンマ区切りで並べるだけでOKです。


printNumbers(numbers: 1, 3, 5, 7)

このように、可変長引数を使うと「いくつ渡されるか分からない値」を柔軟に受け取れるため、初心者の方でも使いやすく、実用的な関数を簡単に作れるのが特徴です。

3. 実際に使ってみよう:数字を表示する関数

3. 実際に使ってみよう:数字を表示する関数
3. 実際に使ってみよう:数字を表示する関数

ここでは、先ほど作成したprintNumbers関数を実際に呼び出して動きを確認してみましょう。 この関数のポイントは、数字をいくつでもまとめて渡せる点です。 プログラミングが初めての方でも、「カンマ区切りで数字を書くと、順番に処理される」と考えればOKです。

まずは、少ない数字から試してみます。関数に渡した数字は、上から順番に1つずつ表示されます。


printNumbers(numbers: 1, 2, 3)

次に、渡す数字の数を変えてみましょう。数が増えても、特別な書き方は必要ありません。


printNumbers(numbers: 10, 20)
printNumbers(numbers: 100)

このように、printNumbers関数は「数字が何個あるか」を気にせず使えます。 実行すると、次のようにすべての数字が順番に表示されます。


1
2
3
10
20
100

数字の個数が変わっても同じ関数を使い回せるため、コードがシンプルになり、 「あとから数字が増えたらどうしよう?」と悩まずに済むのが大きなメリットです。

4. 可変長引数の中身は配列になる

4. 可変長引数の中身は配列になる
4. 可変長引数の中身は配列になる

可変長引数は、関数の中では自動的に「配列(はいれつ)」として扱われます。配列とは、複数のデータをまとめて持てる箱のようなものです。

だから、for文で繰り返し処理をしたり、合計を出したりすることが簡単にできます。


func sumNumbers(numbers: Int...) -> Int {
    var total = 0
    for number in numbers {
        total += number
    }
    return total
}

この関数は、渡された数字をすべて足し算して、合計を返します。


let result = sumNumbers(numbers: 5, 10, 15)
print(result)

30

5. 可変長引数は複数指定できる?

5. 可変長引数は複数指定できる?
5. 可変長引数は複数指定できる?

可変長引数は、1つの関数の中で1回だけ使うことができます。つまり、複数の可変長引数を同時に使うことはできません。

以下のように書くとエラーになります:


func invalidFunction(a: Int..., b: Int...) {
    // これはエラーになる
}

代わりに、通常の引数と可変長引数を組み合わせて使うことは可能です。ただし、可変長引数は最後に書く必要があります。


func showInfo(name: String, scores: Int...) {
    print("名前: \(name)")
    for score in scores {
        print("点数: \(score)")
    }
}

showInfo(name: "田中", scores: 80, 90, 100)

名前: 田中
点数: 80
点数: 90
点数: 100

6. 可変長引数はどんなときに使う?

6. 可変長引数はどんなときに使う?
6. 可変長引数はどんなときに使う?

可変長引数は、以下のようなときに使うと便利です:

  • 合計や平均など、まとめて計算したいとき
  • ログ出力やメッセージ表示など、柔軟に値を受け取りたいとき
  • データの件数が決まっていないとき

たとえば、電卓アプリや成績計算プログラムなど、さまざまなアプリで活用できます。

7. Swiftの関数設計で知っておきたい注意点

7. Swiftの関数設計で知っておきたい注意点
7. Swiftの関数設計で知っておきたい注意点

初心者の方は、つい便利だからと何でもかんでも可変長引数にしてしまいがちですが、すべてに使うのはおすすめしません。

なぜなら、引数が配列になるため、型のミスや意味の分かりにくいコードになりやすいからです。設計の意図に合っている場合のみ使いましょう。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

Swiftの可変長引数について学んできた内容を振り返ると、この仕組みがいかに柔軟で便利な関数設計を実現する重要な要素かが自然と理解できてきます。可変長引数は、引数の数が決まっていない処理を作るときにとても役立つ仕組みで、受け取る値の個数に制限がないため、さまざまな種類のアプリケーションで活用されます。関数に可変長引数を設定することで、複数の数値の合計を計算したり、複数のメッセージをまとめて処理したり、入力されるデータがその時々で異なる場合でも柔軟に対応できます。配列として扱えるため、ループ処理や集計処理との相性も良く、コード全体の見通しをよくすることにもつながります。 可変長引数はInt...やString...のように型の後ろにピリオド3つを付けるだけで簡単に利用でき、通常の引数と組み合わせることもできます。ただし、可変長引数は関数の中で一つだけという制限があり、複数並べることはできません。そのため、関数の設計をする際には、どの引数を可変長にするか慎重に考える必要があります。とはいえ、一度理解して使いこなせば、処理の柔軟性は格段に広がり、Swiftの関数設計をより快適にしてくれます。 さらに、可変長引数は具体的な実用例として、合計値の計算、点数リストの受け取り、ログメッセージの一覧表示など、多岐にわたります。特に初心者がつまずきやすい「配列の扱いやすさ」という部分を自然に身につけられるよい練習にもなります。以下のサンプルコードでは、可変長引数を使った実践的な計算処理を追加し、Swiftにおける柔軟な関数設計のコツを感じられるように構成しています。

サンプルプログラム:可変長引数で平均値を計算する


func average(values: Double...) -> Double {
    if values.isEmpty {
        return 0.0
    }
    var total: Double = 0
    for value in values {
        total += value
    }
    return total / Double(values.count)
}

let avg1 = average(values: 10, 20, 30)
let avg2 = average(values: 5.5, 7.5, 9.5, 11.5)
print(avg1) // 出力:20.0
print(avg2) // 出力:8.5

この例では、受け取った複数の値を合計し、それを件数で割ることで平均を計算する関数を示しています。可変長引数によって、値の数を気にせずに柔軟な計算処理を書くことができ、非常に使い勝手の良い関数になります。可変長引数の特徴である「配列として扱える」という性質を活かし、for文を使って合計を求める流れも自然に理解できます。

先生と生徒の振り返り会話

生徒

「可変長引数って、最初はむずかしそうに思っていましたけど、配列みたいに扱えるって分かったらすごく使いやすいですね!」

先生

「そうですね。可変長引数は柔軟に値を受け取れるので、関数の設計に自由度が出てとても便利ですよ。」

生徒

「可変長引数が一つしか使えないという制限はありますけど、通常の引数と組み合わせればいろいろな関数が作れそうです。」

先生

「その通りです。関数の最後に可変長引数を置くだけで柔軟な処理が実現できます。用途に応じて慎重に設計すると良いですね。」

生徒

「この仕組みは成績計算やログメッセージの一覧にも使えそうだと思いました。値の数が決まっていなくても書きやすいのがうれしいです!」

先生

「合計や平均の計算はとくに相性が良いですね。今回の平均値計算も、いろんな数字を渡せる柔軟さが魅力です。」

生徒

「今日の学びで、可変長引数を使う場面がすごくイメージできました。これからのSwift学習でも色んな場面で使ってみたいです!」

先生

「ぜひ活用してみてください。可変長引数を理解すると、Swiftの関数をもっと自由に設計できるようになりますよ。」

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinのrunの使い方!スコープ内で処理をまとめるテクニック
New2
Kotlin
Kotlinの文字列を逆順にするreversedの使い方を徹底解説!初心者でもわかる文字列操作入門
New3
Kotlin
KotlinのtoList・toCharArrayの使い方を徹底解説!文字列をリストに変換する方法を初心者向けにやさしく説明
New4
Kotlin
Kotlinの拡張プロパティとは?基本的な作り方と活用例を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
C#
C#プログラムの基本的な書き方を完全解説!初心者でもわかる文法入門ガイド
No.2
Java&Spring記事人気No2
Swift
Swift入門ガイド|基本構文と書き方をマスターしよう
No.3
Java&Spring記事人気No3
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
Kotlin
KotlinでZIPファイルの圧縮と解凍を実装する手順を完全解説!Kotlinファイル操作と入出力I/O入門
No.7
Java&Spring記事人気No7
C#
C#の論理演算子の使い方を完全ガイド!&&・||・!を初心者でもわかりやすく解説
No.8
Java&Spring記事人気No8
Swift
Swiftでユーザー向けエラーメッセージ設計を徹底解説!iOSアプリのUI/UXで注意すべきポイント

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク