func sumOf(numbers: Int...) -> Int {
var sum: Int = 0
for number in numbers {
sum += number
}
return sum
}
sumOf(1, 2, 3) //6
这是从Swift iBook中提取的示例代码。它可以找到任意数量参数的总和。
相当于Python代码如下:
def sumOf(*args):
sum = 0
for number in args:
sum += number
return sum
sumOf(1, 2, 3) #6
在Python中,*args接受所有变量类型,因此如果出于任何原因我想要这样做,我可以这样编写代码:
def sumOf(*args):
sum = ""
for number in args:
sum += str(number)
return sum
sumOf(1, "test", 3) #"1test3"
我该如何在Swift
中实现这个?我该如何创建一个函数,该函数可以接受任何类型的可变参数?虽然不一定需要这样做,但我还是想知道如何实现。
谢谢。
Any
将是每个对象都符合的协议,但它除了满足编译器外没有任何帮助 - 您不能 对 对象执行任何操作)。然后,您可以使用公共协议作为可变参数列表的类型。 - Thorsten Karrer