我不是在寻找如何正确地做到这一点的答案,而是为什么会发生这种情况。
这是代码:
func isInt(param: AnyObject?) {
if let value = param as? Int {
print(value)
} else {
print("Not Int")
}
if let value = param {
if value is Int {
print(value)
} else {
print("Not Int")
}
}
}
let a:AnyObject? = 1.2
let b:Float? = 1.2
let c:Double? = 1.2
isInt(a)
isInt(b)
isInt(c)
我明白在第一个if
循环中,将param
被转换为Int
然后打印出来1
。
但是为什么在第二个if
循环中,if value is Int
是真的然后打印出来1.2
?