【发布时间】:2014-10-07 00:40:29
【问题描述】:
我有一个接受 Any 的 Swift 函数,我希望它能够接受字符串数组、整数数组、混合数组或数组数组等。它也可以只接受字符串或不在数组中的 Int 等。
所以我有这个:
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"]),则会引发断言。如何捕获所有类型的数组?
编辑 - 我想要完成的工作有些混乱。我基本上需要根据类型返回一个String,所以Int->“”和String->“”,所以一个数组会递归调用返回“...”
这篇文章被标记为重复,但另一个问题是关于 Javascript,而不是 Swift。
【问题讨论】:
-
user3352495 false,对 [Any] 的检查仍然无法按预期工作(Swift 5)