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


1. 常见的类型转化符号

1.1 is : 用于判断一个实例是否是某一种类型**
// 1.定义数组
let array : [AnyObject] = [20, "cdh", 1.88]

// 2.取出数组中的第一个元素
let objc = array.first!

// 3.判断第一个元素是否是一个Int类型
if objc is Int {
    print("是Int类型")
} else {
    print("非Int类型")
}
1.2 as?as! 的使用
  • 1.将NSObject转成具体的类型
  • 2.as? 将NSObject转成一个可选类型(掌握)
  • 3.as! 将NSObject转成一个具体的类型(注意:如果转化不成功,程序会崩溃)
// 4.将objc转成真正的类型来使用
// 4.1.as? 将AnyObject转成可选类型,通过判断可选类型是否有值,来决定是否转化成功了
let age = objc as? Int
print(age) // 结果:Optional(12)

// 4.2.as! 将AnyObject转成具体的类型,但是注意:如果不是该类型,那么程序会崩溃
let age1 = objc as! Int
print(age1) // 结果:12
// 2.1 定义字典
let infoDict = ["name" : "CDH", "age" : 18 , "height" : 1.88]
let name = infoDict["name"]
if let name = name {
    // 将 NSobject 转为 String 的可选类型
    let name = name as? String
    // 使用name
    if let name = name {
        print(name.characters.count)
    }
}
// 简单写法一:
if let name = infoDict["name"]{
    if let name = name as? String{
        print(name.characters.count)
    }
}
// 简单写法二:
if let name =  infoDict["name"] as? String{
    print(name.characters.count)
}

你可能感兴趣的:(swift基础语法-类型转化 as? as!)