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

Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本

Swift 戻り値の扱い方と複数戻り値の返し方
Swift 戻り値の扱い方と複数戻り値の返し方

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

生徒

「Swiftの関数で、何か値を返すときってどうすればいいんですか?」

先生

「それは戻り値と呼ばれるもので、関数の処理結果を返す仕組みですね。たとえば、足し算の結果を返すなど、よく使われますよ。」

生徒

「なるほど。でも戻り値って1つだけですか? もし複数の情報を返したいときは?」

先生

「いい質問です!Swiftでは複数の戻り値を返す方法もあります。それじゃあ、順番に基本から解説していきましょう。」

1. 戻り値(もどりち)とは?

1. 戻り値(もどりち)とは?
1. 戻り値(もどりち)とは?

関数の処理が終わったあと、その結果を呼び出し元に返すことを「戻り値を返す」と言います。

たとえば、2つの数を足して、その合計だけを返す関数が典型的です。

2. 単一の戻り値を返す基本構文

2. 単一の戻り値を返す基本構文
2. 単一の戻り値を返す基本構文

戻り値がある関数は、-> 戻り値の型で書きます。以下は整数型(Int)の戻り値を返す例です。


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

let result = add(a: 3, b: 5)
print(result)

8

returnは、結果を返すためのキーワードです。

3. 戻り値の型はいろいろ使える

3. 戻り値の型はいろいろ使える
3. 戻り値の型はいろいろ使える

戻り値は、String(文字列)やDouble(小数)など、さまざまな型を使えます。


func greet(name: String) -> String {
    return "こんにちは、\(name)さん!"
}

let message = greet(name: "太郎")
print(message)

こんにちは、太郎さん!

4. 戻り値がない場合の書き方

4. 戻り値がない場合の書き方
4. 戻り値がない場合の書き方

値を返さない関数は、戻り値の型を省略するか、-> Voidと書きます。


func sayHello() {
    print("こんにちは!")
}

もしくは明示的にこう書いてもOKです:


func sayHello() -> Void {
    print("こんにちは!")
}

5. 複数の戻り値を返す方法(タプル)

5. 複数の戻り値を返す方法(タプル)
5. 複数の戻り値を返す方法(タプル)

Swiftでは、タプルという形を使えば、複数の値を一度に返すことができます。タプルはかんたんに言えば「複数の箱を1つにまとめたもの」です。


func getUserInfo() -> (String, Int) {
    return ("花子", 25)
}

let info = getUserInfo()
print(info.0)
print(info.1)

花子
25

info.0info.1のように、位置でアクセスできます。

6. 戻り値に名前をつけて返す

6. 戻り値に名前をつけて返す
6. 戻り値に名前をつけて返す

タプルに名前をつけると、より分かりやすくなります。


func getUserInfo() -> (name: String, age: Int) {
    return (name: "太郎", age: 30)
}

let user = getUserInfo()
print(user.name)
print(user.age)

太郎
30

このように名前をつけることで、読みやすくなり、エラーも減らしやすくなります。

7. 複数の戻り値を使う場面

7. 複数の戻り値を使う場面
7. 複数の戻り値を使う場面

例えば、テストの点数と合格・不合格の判定を同時に返すような関数では、複数の戻り値が便利です。


func checkScore(score: Int) -> (Int, String) {
    if score >= 80 {
        return (score, "合格")
    } else {
        return (score, "不合格")
    }
}

let result = checkScore(score: 75)
print("点数:\(result.0)、判定:\(result.1)")

点数:75、判定:不合格

このように、ひとつの関数で複数の情報を返すことができます。

8. 戻り値に変数を代入して再利用

8. 戻り値に変数を代入して再利用
8. 戻り値に変数を代入して再利用

戻り値を変数に入れておけば、あとから何度でも使うことができます。


func getGreeting() -> String {
    return "こんにちは!"
}

let greeting = getGreeting()
print(greeting)
print(greeting + " また会いましょう!")

こんにちは!
こんにちは! また会いましょう!

このように、一度戻り値を取り出しておけば、繰り返し使えるのも便利なポイントです。

9. 戻り値を無視して使いたいとき

9. 戻り値を無視して使いたいとき
9. 戻り値を無視して使いたいとき

関数の戻り値があるけど、必要ない場合もあります。そのときは代入せずに使ってOKです。


func getNumber() -> Int {
    return 42
}

_ = getNumber()

_ =と書くことで、「戻り値はいらないよ」という意味になります。

カテゴリの一覧へ
新着記事
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)とは?便利な特徴と使い方を初心者向けにやさしく解説!