Variable Arguments
Varargs i.e. variable function arguments are a very useful technique for situations where the number of function parameters is unknown.
// classic example
func sum(of numbers: Int...) -> Int {
     // add up all numbers with the + operator
     return numbers.reduce(0, +)
}
let theSum = sum(of: 1, 2, 5, 7, 9) // 24
A tuple can be useful here if your requirement goes beyond simple
integers. Take this function, which does a batch update of n entities
in a database:
func batchUpdate(updates: (String, Int)...) {
     self.db.begin()
     for (key, value) in updates {
         self.db.set(key, value)
     }
     self.db.end()
}
batchUpdate(updates: (\"tk1\", 5), 
        (\"tk7\", 9), 
        (\"tk21\", 44), 
        (\"tk88\", 12))
This pattern allows us to model the insertions in a very simple manner without having to introduce additional struct types.

