Swift - as、as!、as?三种类型转换操作使用一览
2016-09-29 14:51
169 查看
as、as!、as? 这三种类型转换操作符的异同,以及各自的使用场景。
1,as使用场合
(1)从派生类转换为基类,向上转型(upcasts)
(2)消除二义性,数值类型转换
(3)switch 语句中进行模式匹配
如果不知道一个对象是什么类型,你可以通过switch语法检测它的类型,并且尝试在不同的情况下使用对应的类型进行相应的处理。
2,as!使用场合
向下转型(Downcasting)时使用。由于是强制类型转换,如果转换失败会报 runtime 运行错误。
3,as?使用场合
as? 和 as! 操作符的转换规则完全一样。但 as? 如果转换不成功的时候便会返回一个 nil 对象。成功的话返回可选类型值(optional),需要我们拆包使用。
由于 as? 在转换失败的时候也不会出现错误,所以对于如果能确保100%会成功的转换则可使用 as!,否则使用 as?
1,as使用场合
(1)从派生类转换为基类,向上转型(upcasts)
如果不知道一个对象是什么类型,你可以通过switch语法检测它的类型,并且尝试在不同的情况下使用对应的类型进行相应的处理。
向下转型(Downcasting)时使用。由于是强制类型转换,如果转换失败会报 runtime 运行错误。
as? 和 as! 操作符的转换规则完全一样。但 as? 如果转换不成功的时候便会返回一个 nil 对象。成功的话返回可选类型值(optional),需要我们拆包使用。
由于 as? 在转换失败的时候也不会出现错误,所以对于如果能确保100%会成功的转换则可使用 as!,否则使用 as?
相关文章推荐
- Swift - as、as!、as?三种类型转换操作使用一览
- Swift开发之 as、as!、as?三种类型转换操作符使用详解
- Swift开发之 as、as!、as?三种类型转换操作符使用详解
- Swift开发之 as、as!、as?三种类型转换操作符使用详解
- Swift入门(十一)——类型转换与is、as操作
- swift 中 as、as!、as? 这三种类型转换操作符的异同 及一些控件用法
- swift--使用 is 和 as 操作符来实现类型检查和转换 / AnyObject与Any的区别
- as、as!、as?三种类型转换操作符使用详解
- Swift as、as!、as?三种类型转换操作符使用详解
- Flex中的CSS: (2)三种基本类型的CSS会被编译器转换为什么样的AS代码?
- 写几个带继承关系的类,使用直接强转的方式,以及使用as转换, 并且练习is的类型判断
- 丶使用as关键字将对象转换为指定类型
- java中没有2进制的数据类型,对二进制的操作,需要使用共三种操作符
- C#引用类型转换,到底使用is,as还是显式强转?
- swift:类型转换(is用作判断检测、as用作类型向下转换)
- C语言学习2:sizeof ,数据类型,scanf,算式操作,赋值与比较操作,逻辑操作,位的操作,条件运算符,特异赋值结果,强制转换,使用变量要注意的
- Swift 类型转换is, as, Any, AnyObject(十二)
- Swift - 类型判断is 与 类型转换as
- Swift 类型的检査与转换(is,as,AnyObject,Any)
- C++中使用stringstream进行类型转换操作