相当于Swift中的* args?

时间:2014-12-01 05:42:24

标签: ios xcode swift swift-playground

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中执行此操作?如何创建具有可变数量的任何类型参数的函数?我不需要这样做,但我想知道如何做。

感谢。

1 个答案:

答案 0 :(得分:1)

这样的东西?

func concatOf(args: Any...) -> String {
    var concat = ""
    for arg in args {
       concat = "\(concat)\(arg)"
    }
    return concat
}