美文网首页
swift类型转化

swift类型转化

作者: 宇亭 | 来源:发表于2017-03-30 09:34 被阅读0次

一: swift类型转化的四种操作

Swift是强类型语言,但也允许开发者通过is、as、as?和as!这四种操作来对类型进行判断和强制转换。其中is用作类型判断,而as?和as!则分别是类型转换的可选形式和强制形式。swift中比较常用的向下转换(downcast)是没有as操作符的,但是,如果现在有一个Dog类他的父类是一个Animal类,可以通过as将一个Dog类转化为Animal类.

为了方便后面的解释,这里假设定义了三个类,Animal、Dog和Cat,其中Dog和Cat都继承自Animal。

二: is操作符

is操作用来判断某一个对象是否是某一个特定的类,它会返回一个bool类型的值。is操作的逻辑很简单,某一个类的对象肯定是自己这个类,也一定是自己的超类,但超类的对象不是子类。如果两个类没有继承关系,那is操作一定返回false.

如下:

if Dog is Animal {

print("这是个小狗")

}

if Cat is Animal{

print("这是个小猫")

}

if Animal is Cat {

print("动物是一个猫")  // 这种判断显然不能成立,返回的是一个false

}

注意: 以上这种使用is做判断,返回一个bool类型的结果,判断一个类是不是另外一个类的类型,就相当于我们在OC里面用到的isKindOfClass去判断一样

三: as转化

使用as转化,只能将一个子类转化成一个父类(或者超类),反过来不能转化成功

四:as!操作符

as!操作符是类型转换的强制格式,优点在于代码简单,如果可以转换,则会返回转换了格式的对象,如果无法转换就会抛出运行时错误。因此除非百分之百确定可以转换,否则不应该使用as!来进行强制类型转换,易造成程序crash。

五:as?操作符

as?和as!操作符的转换规则完全一样,但是as?会返回一个被转换类型的可选类型,需要我们解封。因为可选类型即使值不存在转化失败也不会导致程序报错,所以当我们在开发的时候最好使用这种方式进行转化,除非我们有百分之百的把握才可以使用强制转化

相关文章

  • Swift--Swift原生数据类型

    Swift数据类型 整型 浮点型 数字表达式 数字类型之间的转化 布尔型 元组类型 可选类型 Swift数据类型 ...

  • swift类型转化

    as的使用as 作用把 swift 中的 string 转成 iOS中NSString然后进行一些操作let st...

  • Swift - 类型转化

    类型转化 常见的类型转化符号 is:用于判断一个实例是否是某一种类型 as:将实例转成某一种类型 例子

  • swift类型转化

    一: swift类型转化的四种操作 Swift是强类型语言,但也允许开发者通过is、as、as?和as!这四种操作...

  • Swift与OC部分方法、类型区别与互转

    Swift与OC转换 1、获取对象类型 共有: 2、函数入参中对象转化 OC转Swift,对象变为可选类型 Swi...

  • swift 3 学习(2)

    1,当多个不同类型的数据进行操作时,需要转化为形同的数据类型。 因为swift有类型推导:当swift 知道你输入...

  • 11 Swift 类型转化

    常见的类型转化符号 is : 用于判断一个实例是否是某一种类型 as : 将实例转成某一种类型 例子 系列文章01...

  • 【iOS】 DeviceToken 解析 (支持iOS13)

    OC: Swift : 总结起来其实就是把Data类型转化为hex类型的字符串

  • Swift 中 is、as类型转换

    1. is类型转换 用来判断该对象的类型能否被兼容,返回Bool值。 2. as类型转化 Swift中类型要求非常...

  • swift基础语法-类型转化 as? as!

    1. 常见的类型转化符号 1.1 is : 用于判断一个实例是否是某一种类型** 1.2 as? 和 as! 的使...

网友评论

      本文标题:swift类型转化

      本文链接:https://www.haomeiwen.com/subject/upruottx.html