是否可以在我的设置中使用countElements()
调用Array
?
countElements()
与String
一起正常工作。但是,我无法弄清楚如何将thing
投射到Array
,从而无法调用countElements()
。
请注意,方法签名必须为func myCount(thing: Any?) -> Int
,因为这是used in my open source project。
func myCount(thing: Any?) -> Int {
if thing == nil {
return -1
}
if let x = thing as? String {
return countElements(x)
}
if let y = thing as? Array<Any> {
return countElements(y) // this if is never taken
}
return -1
}
myCount(nil) // -1
myCount("hello") // 5
myCount([1, 2, 3]) // BOOM, returns -1, I'm expecting 3 returned
答案 0 :(得分:2)
这对我有用。虽然来回晃动但感觉有些笨拙。
func myCount(thing: Any?) -> Int {
if thing == nil {
return -1
}
if let x = thing as? String {
return countElements(x)
}
if let y = thing as? NSArray {
return countElements(y as Array)
}
return -1
}