正しく行う方法などの答えを探しているのではなく、なぜこれが起こるのか.
コードは次のとおりです。
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ます。
しかし、なぜ 2 番目のifループでif value is Inttrue を出力して出力するの1.2でしょうか。