美文网首页Swift
swift基础语法-类型转化 as? as!

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

作者: DwightChan | 来源:发表于2016-08-11 19:13 被阅读23次

    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!

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