跳转至

As

as!

向下强制类型转换,如果转换失败会报错

class Auto {}
class Car: Auto {}
let auto: Auto = Car()
let car = auto as! Car

as?

as?在转换失败之后会返回nil对象,转换成功之后返回一个可选类型(optional),需要我们拆包使用。

let auto: Auto = Car()
if let car = auto as? Car {
   print("这是Car")
}
else {
  print("这不是Car")
}