今回は、Swiftの関数を定義する際に受け取る引数の個数を指定せず、いくつでも受け取れるようにする定義の仕方を紹介する。

可変長引数関数

いわゆる可変長引数の関数定義で、以下のように引数の後ろに「…」を付けることで定義することができる。

func sum(nums: Double...) -> Double {
    var total: Double = 0.0
    
    for num in nums {
        total += num
    }
    
    return total
}

受け取った引数は配列として扱うことができ、上記の例ではfor in文を使って合計値を求めている。

関数を使う際は、カンマ区切りで値を引数として与える。

let total = sum(nums: 1, 2, 3, 4, 5)
print(total)

// 15.0

関数の引数は可変長となっているので、この際の引数の数は0個でも何個でも構わない。