Swift 入門 | 関数 | 複数の戻り値とタプル

Swift の関数には興味深い特徴がいくつもある。その中でも重要なものが、複数の値を返す機能である。

これは関数自体に特別な仕組みがあるのではない。Swift に用意されているタプル(tuple)という値を利用する。

タプルは複数の値を 1 つにまとめて扱う。丸かっこを使って簡単に作成できる。

(名前:値, 名前:値, ...)

タプルにまとめた値は、名前を指定して取得できる。

var person = (name:"Taro", age:35)
person.name
person.age

このコードでは、nameage を持つタプルを変数 person に代入している。値は person.nameperson.age の形式で取得できる。

戻り値としてタプルを使う

タプルの考え方を理解すると、複数の値を返す関数も簡単に作成できる。

func tax(price:Int) -> (kakaku:Int, zei:Int) {
    let zei:Int = Int(Double(price) * 0.08)
    let kakaku:Int = price - zei
    return (kakaku:kakaku, zei:zei)
}

var res = tax(10000)
res.kakaku
res.zei

戻り値は次のように指定する。

-> (kakaku:Int, zei:Int)

これにより、kakakuzei の 2 つの値を持つタプルを戻り値として指定できる。関数の戻り値を受け取った変数から、それぞれの値を取り出して使う。