如果函数参数的类型不正确,如何捕获错误?
功能:
func returnBool(someBool: Bool) -> Bool {
return someBool
}
假设:
returnBool("不是Bool")
结果:
"无法转换类型的值..."
我想看到的内容:
false,nil等+没有错误
答案 0 :(得分:0)
编译器不允许你这样做。如果你想检查一些param,它可以是任何对象,那么使用AnyObject
并用guard
语句检查它:
func returnBool(someBool: AnyObject) -> Bool {
guard someBool is Bool else { return false }
return true
}
let result1 = returnBool("test") // false
let result2 = returnBool(false) // true
let result3 = returnBool(1) // true
或
func returnBool(someBool: AnyObject) -> Bool? {
guard someBool is Bool else { return nil }
return someBool as? Bool
}
let result1 = returnBool("test") // nil
let result2 = returnBool(false) // false
let result3 = returnBool(1) // true