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