首页 > swift中int...与[int]的区别

swift中int...与[int]的区别

//第一段
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...


[Int] 是 Int泛型数组

【热门文章】
【热门文章】