美文网首页
iOS开发 - 「Swift 学习」Swift可选类型解析

iOS开发 - 「Swift 学习」Swift可选类型解析

作者: 俺不是大佬儿 | 来源:发表于2021-11-29 23:20 被阅读0次

强制解析

当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。这个感叹号表示"我知道这个可选有值,请使用它。"这被称为可选值的强制解析(forced unwrapping)


        var optionalStr:String? = nil
        if optionalStr != nil {
            print("optionalStr 的值为:\(optionalStr)")
        }else {
            print("optionalStr 的值为:nil")
        }
        //打印输出:optionalStr 的值为:nil
        
        optionalStr = "Hello, Swift!"
        if optionalStr != nil {
            print("可选类型的值:\(optionalStr)")
        }else {
            print("optionalStr 的值为:nil")
        }//打印输出:可选类型的值:Optional("Hello, Swift!")
        
        
        //强制解析可选类型(!)
        if optionalStr != nil {
           // 强制解析
            print("强制解析结果:\(optionalStr!)")
        }else{
           print("optionalStr 值为 nil")
        }//打印输出:强制解析结果:Hello, Swift!

\color{red}{注意:}
使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值

自动解析

可以在声明可选变量时使用感叹号(!)替换问号(?)。这样可选变量在使用时就不需要再加一个感叹号(!)来获取值,它会自动解析

//自动解析
        var myString:String!
        myString = "Hello, Swift!"
        if myString != nil {
           print(myString)
        }else{
           print("myString 值为 nil")
        }//打印输出:Optional("Hello, Swift!")

看这输出的结果貌似没有解析到值

可选绑定

使用可选绑定(optional binding)来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量

可选绑定可以用在if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量。

可选绑定的声明形式:

        if let constantName = someOptional {
            statements
        }

示例:

//可选绑定
        var optionalBindingStr:String?
        optionalBindingStr = "Hello, Swift!"
        if let tempStr = optionalBindingStr {
            print("字符串值为 - \(tempStr)")
        }else {
            print("字符串没有值")
        }//打印输出:字符串值为 - Hello, Swift!

\color{gray}{欢迎大佬儿来指正纠错,共同学习😏!!}

相关文章

网友评论

      本文标题:iOS开发 - 「Swift 学习」Swift可选类型解析

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