相当于 Swift 中的 *args?

Jax*_*xkr 5 xcode ios 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
Run Code Online (Sandbox Code Playgroud)

这是取自SwiftiBook 的示例代码。它找到任意数量的参数的总和。

此代码的 Python 等效项是:

def sumOf(*args):
    sum = 0
    for number in args:
        sum += number
    return sum
sumOf(1, 2, 3) #6
Run Code Online (Sandbox Code Playgroud)

在 python 中, *args 接受所有变量类型,因此如果我出于某种原因想要这样做,我可以:

def sumOf(*args):
    sum = ""
    for number in args:
        sum += str(number)
    return sum
sumOf(1, "test", 3) #"1test3"
Run Code Online (Sandbox Code Playgroud)

我该如何在 中执行此操作Swift?如何创建具有可变数量的任意类型参数的函数?我不需要这样做,但我想知道如何做。

谢谢。

Ama*_*dan 3

像这样的东西吗?

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