在 swift 3 中,有没有办法将可变参数函数转换为接收数组的函数,反之亦然?

Is there a way to convert a variadic function into one that receives an array and vice versa in swift 3?

我正在尝试的代码:

fileprivate func concatPairs(_ pairStrings: [String]) -> String {
    return "{\n" + pairStrings.joined(separator: ",\n") + "}\n"
}

fileprivate func concatPairs(_ pairStrings: String...) -> String {
    return concatPairs(pairStrings)
}

let p1 = jsonify(pair: ("size", 15), quoteValue: false)
let p2 = jsonify(pair: ("length", 23.12), quoteValue: false)
concatPairs(p1, p2)
concatPairs([p1, p2])

有没有办法将 variadic function 转换为接收数组的方法,反之亦然?我想避免所有额外的打字。

尝试使用 Any 作为参数类型。

fileprivate func concatPairs(_ pairStrings: Any...) -> String {
    if let strings = pairStrings as? [[String]] {
        let newStrings = strings.flatMap { [=10=] }
        return "{\n" + newStrings.joined(separator: ",\n") + "}\n"
    }
    else if let _ = pairStrings.first as? String {
        return concatPairs(pairStrings)
    }
    return ""    
}