从下面的代码:
import Foundation
func checkStatus(statusObj: AnyObject) -> String {
if let status = statusObj as? String where status.lowercaseString == "ok" {
return "success"
} else if let status = statusObj as? Int where status >= 200 && status < 300 {
return "success"
} else {
return "failed"
}
}
print(checkStatus("ok"))
print(checkStatus(200))
print(checkStatus("error"))
print(checkStatus(500))
有没有办法将两个成功条件组合成一个陈述?
最佳答案
我最终使用switch和fallthrough编写了这种代码:
func checkStatus(statusObj: AnyObject) -> String {
switch statusObj {
case let status as Int where 200..<300 ~= status:
fallthrough
case "ok" as String:
return "success"
default:
return "failed"
}
}
我不得不撤消测试,因为在let的情况下失败无法解决。
关于swift - 转换和检查多种类型的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34378525/