我有一个 Swift 函数,它可以接受任何类型的参数,并且我希望它能够接受字符串数组、整数数组、混合数组或者嵌套数组等等。同时,该函数也可以接受单个字符串或整数等非数组形式的参数。
所以我的代码是这样的:
private func parse(parameter: Any) {
if parameter is Int {
// Int
} else if (parameter is Float) || (parameter is Double) {
// Double
} else if parameter is String {
// String
} else if parameter is Bool {
// Bool
} else if let array = parameter as? [Any] {
// Should catch all Arrays
} else {
assert(false, "Unsupported type") // [String] ends up here
}
}
但是如果我调用parse(["Strings"])
,就会触发断言。我该如何捕获所有类型的数组?
编辑 - 有些混淆了我的目标。基本上,我需要根据类型返回一个字符串,所以 Int -> "" 和 String -> "",因此数组将进行递归调用以返回 "..."。
此帖子被标记为重复,但那个问题是关于Javascript而不是Swift的。