它提到在创建for
循环时,我们可以使用0..3
和0...3
的简写分别替换i = 0; i < 3; ++i
和i = 0; i <= 3; ++i
。
非常好。
在“函数和闭包”部分的文档中,它表示函数可以通过数组传递可变数量的参数。
但是,在代码示例中,我们再次看到...
。
func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
这是一个错误吗?在我看来,更直观的语法是numbers: Int[]
。
下面的一些示例我们看到另一个代码示例,它具有以下内容:
func hasAnyMatches(list: Int[], condition: Int -> Bool) -> Bool {
答案 0 :(得分:41)
如果所有参数都是Int数:Int []将是直观的。但如果你有这样的代码:
func foo(args:AnyObject...) {
for arg: AnyObject in args {
println(arg)
}
}
foo(5, "bar", NSView())
输出:
5
bar
<NSView: 0x7fc5c1f0b450>
答案 1 :(得分:5)
sumOf中的参数类型称为&#39; variadic&#39;参数。 传递的参数只是作为一组元素接受,然后在该函数中使用之前转换为数组。
这个帖子就是一个很好的例子。