美文网首页iOS点滴记录
Swift 3.0学习笔记_2_可选类型&错误处理&am

Swift 3.0学习笔记_2_可选类型&错误处理&am

作者: henu_Larva | 来源:发表于2017-04-06 17:26 被阅读7次

    可选类型,可选绑定,隐式解析,错误处理,断言

    let possibleNumber1 = "1"
    let possibleNumber2 = "1sa"
    //可以转换的时候,有值,否则为 nil,故 convertedNumber1 和 convertedNumber2 的类型为 Int?
    let convertedNumber1 = Int(possibleNumber1)
    let convertedNumber2 = Int(possibleNumber2)
    print("\(convertedNumber1!)") //当明确一个可选类型有值得时候,可在其后加一个感叹号'!' 来获取这个值
    
    let a  = 1 + convertedNumber1! //不加感叹号的话,无法获取这个可选类型的值
    
    //注意:使用感叹号获取可选类型的值得时候,必须确定该可选类型是有值的,否则会报错
    if convertedNumber1 != nil {
        let b = 5 + convertedNumber1!
        //let c = 9 + convertedNumber2! //此时,convertedNumber2 这个可选类型的值为 nil, 故不能用感叹号获取它的值
    }
    
    //可选绑定--> 如果一个可选类型有值,则将其赋给一个临时的常量或变量,此时无需再通过感叹号获取值之后再赋值给临时常量或变量
    if let some = Int(possibleNumber1) {
        
    }
    
    //隐式解析是指可以确认该可选类型在赋值后一直有值
    let possibleString:String? = "an option string."
    let forcedString:String = possibleString!
    
    let assumedString:String! = "an implicity unwrapped optional string"
    let implicitString:String = assumedString //这里无需感叹号
    
    //注:如果一个变量之后可能变为 nil 的话,请不要使用隐式解析可选类型,若需要在变量的生命周期中判断是否为 nil 的话,请使用普通可选类型
    
    //错误处理
    func canThrowAnError() throws {
        //一个函数可以通过在声明的时候添加 throws关键词来抛出错误信息,当你的函数能抛出错误信息时,应当在表达式中前置 try 关键词
    }
    
    do {
        try canThrowAnError()
        //没有错误抛出
    } catch  {
        //有错误抛出
    }
    
    //断言
    let age = -3
    assert(age > 0,"A person's age can not be less than zero") //此时触发断言,提示错误,程序无法继续
    //注"当代码使用优化编译的时候,断言将会被禁用,例如在 Xcode 中,使用默认的 target Release 配置选项来 bu ild 时,断言会被禁用
    

    相关文章

      网友评论

        本文标题:Swift 3.0学习笔记_2_可选类型&错误处理&am

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