类型转化

类型转化

  • is :用来判断一个实例是否是某一种确定的类型
  • as :将实例转成某一种类型

is的使用

  • 用来判断某一个实例是否是某一种确定的类型
let infoArray = ["why",18,1.88]
let item = infoArray[0]
if item is String{
   print("是一个字符串")
}else{
   print("不是一个字符串")
}
//区别:
item.isKindOfClass(UIView.self)判断是否是某种类

as的使用

  • as的直接使用
    • 一般用于swift类型和OC类型的转化
let urlString = "www.520it.com"
(urlString as NSString).substringToIndex(3)
  • as?的使用
    • 将NSObject转为确定的类型的可选类型
let item1 = infoArray[0]
let name = item1 as? String
if let name = name {
print(name.charcters.count)
}
print(name?.characters.count)
//简便写法
if let name = infoArray[0] as? String {
   print(name.characters.count)
}
  • as!的使用
    • 将NSObject转成确定的类型,但是如果转化不成功,则程序会崩溃
    • 不建议使用,只有类型确定的时候才能使用
let item1 = infoArray[0]
let name = item1 as! String
print(name.characters.count)
//简便写法
let count = (infoArray[0] as! String).characters.count
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容