//第一段
func hasAnyMatches(list: [Int], condition: Int -> Bool) -> Bool {
for item in list {
if condition(item) {
return true
}
}
return false
}
func lessThanTen(number: Int) -> Bool {
return number < 10
}
var numbers = [20, 19, 7, 12]
hasAnyMatches(numbers, condition: lessThanTen)
//第二段
func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
sumOf()
sumOf(42, 597, 12)
第一段的list
和第二段numbers
中,为什么一个是[Int]
一个是Int...
呢?playground中试过不能互换。。
[Int]
表示该参数是数组类型。
Int...
表示该参数是可变参数(Variadic Parameters)。
A variadic parameter accepts zero or more values of a specified type.
一个可变参数可以接受零个或多个值。
区别
在函数体里,可变参数是当做数组类型在使用的,也就是说,两者无异,区别在于,调用函数的时候。

将可变参数作为参数的函数可以接受零个值,即无参数传入,也能调用;而在调用将数组类型参数作为参数的函数室,必须有相应的参数传入。
The Swift Programming Language, Funtions, Varidic Parameter
https://developer.apple.com/library/prerelease/ios/documentation/Swift...
The Swift Programming Language, Array Type
https://developer.apple.com/library/prerelease/ios/documentation/Swift...