您现在的位置是:首页 > 文章详情

12.Swift学习之Any、AnyObject与类型转化

日期:2018-09-25点击:349

Any、AnyObject

  • Any是一个空协议集合的别名,它表示没有实现任何协议,因此它可以是任何类型,包括类实例与结构体实例。可以表示任何类型,包括函数类型。
  • AnyObject是一个成员为空的协议,任何对象都实现了这个协议。可以表示任何类类型的实例。

类型转化符号

  • is : 使用类型检查操作符 ( is )来检查一个实例是否属于一个特定的子类。如果实例是该子类类型,类型检查操作符返回 true ,否则返回 false 。
  • as : 类型转换操作符( as? 或 as! )进行向下类型转换至其子类类型。
    • 如果不确定向下转换类型是否能够成功,使用条件形式的类型转换操作符 ( as? )
    • 如果确定向下转换类型会成功时,使用强制形式的类型转换操作符( as! )

例子

// 1.定义数组 let array : [Any] = [12, "zhangsan"] // 2.取出数组中的第一个和最后一个元素 let objcFirst = array.first! let objcLast = array.last! // 3.判断第一个元素是否是一个Int类型 if objcFirst is Int { print("是Int类型") } else { print("非Int类型") } // 4.转成真正的类型来使用 // 4.1.as? 将Any转成可选类型,通过判断可选类型是否有值,来决定是否转化成功了 let name = objcLast as? String print(name) // 结果:Optional("zhangsan") // 4.2.as! 将Any转成具体的类型,如果不是该类型,那么程序会崩溃 let name2 = objcLast as! String print(name2) // 结果:zhangsan 
原文链接:https://yq.aliyun.com/articles/670813
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章