美文网首页Swift专题
swift中的可选变量

swift中的可选变量

作者: 记忆的北极 | 来源:发表于2018-05-09 10:26 被阅读132次
    一,可选变量的定义
    //定义可选变量类型,以下两种方式是一样的 ?表示可选类型Option
    var optionalInteger:Int?
    var optionalInteger1:Optional<Int>
    
    //可选变量 -数组
    var dataArray:([Int])?
    //可选变量 -字典
    var searchDic:([String:Any])?
    
    //可选变量的声明和初始化赋值 使用?和!都可以声明可选变量
    var var1:String? = nil
    var var2:String! = "12345"
    
    
    二,强制解析

    使用可选变量的时候需要使用!来解析可选变量里面的值(强制解析 forced unwrapping), 使用!的时候表示这个可选变量里面一定有值,如果可选变量没有提供初始值,那么默认是nil

    //使用了?创建的可选变量,解析的时候需要使用强制解析
    var userName:String?
    userName = "hello swift!"
    
    //如果一个可选类型是包含一个值,那么可以使用操作符!来取这个值
    //如果可选类型是个nil, 使用!来获取可选类型里的值会出现错误
    //nil值是针对类(class)有用, 而可选类型对所有的类型都有用,并且安全
    //要解决这个问题需要先判断可选类型是否是nil
    if userName != nil {
       //打印可选变量
       print(userName)
        //打印可选变量里的值
        //我已经确认userName这个可选变量有值
        //所以我可以强制解析(forced unwrapping), !获取可选变量里的值
       print(userName!)
    }else{
        print("userName = nil")
    }
    
    三,自动解析

    使用!声明的可选变量不需要强制解析,所以用!声明的可选变量不需要使用!来解析,而是直接使用,因为已经是自动解析了

    var userName1:String!
    userName1 = "This is automatic unwrapping!"
    print(userName1)
    
    四,可选绑定(optional binding)

    1,可选绑定是用来判断可选类型是否包含值的,如果包含就会赋值给一个临时常量或变量
    2,可选绑定一般结合使用if或while语句来使用

    if let name = userName {
      print("name=\(name)")
    }else{
      print("name = nil") 
    }
    

    相关文章

      网友评论

        本文标题:swift中的可选变量

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