您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页Swift 中的 as、as! 和 as?

Swift 中的 as、as! 和 as?

来源:华佗小知识

1. 关于as

  • 将子类转换为基类
class Auto {}

class Car: Auto {}

let  car = Car()
let truck = car as Auto
  • 数值类型转换
let number1 = 56 as Int
let number2 = 5.092 as CGFloat
  • switch 中的模式匹配

Swift中可以通过switch语法检测变量的类型,并且在不同类型下来进行相应的处理:

switch Auto {
     case let car as Car:
           print("这里是Car类型对象")
     case let truck as Truck:
           print("这里是Truck类型对象")
     default: break
}

2. 关于as!

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

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

3. 关于as?

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

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

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务