美文网首页
swift-解包方式

swift-解包方式

作者: malgee | 来源:发表于2018-03-21 16:04 被阅读19次
    var ss: String? = "hello"
    
    // 方式一 !强制解包
    
    if ss != nil {
        
        print(ss!)    // 执行到这里 一定有值
    }
    
    // 方式二  加一个?
    
     var aa = ss?.uppercased()   // 执行到这里 aa 可能有值,也可能没有值, 但是不会报错
    
    // 方式三 if let
    
    if let ss = ss {
        
        print(ss)     // ss 一定有值
    }
    
    if let ss = ss?.uppercased() {
        
        print(ss)
    }
    
    // 方式四 ??  
    
    let bb = ss ?? "hi"    // bb一定有值
    
    
    // 方式五 guard let
    
     let dd : String? = "hello"
            
     guard let qq = dd else {
                
            return 
       }
       // 执行到之处 qq 一定有值
     print(qq)
    

    隐士可选性使用示例

    class City
    {
        let cityName: String
        var country: Country
        
        init(cityName: String, country: Country) {
            
            self.cityName = cityName
            
            self.country = country;
        }
        
    }
    
    class Country
    {
        let countryName: String
        var capitalCity: City!    // 这里的 City! 是隐士可选性
        
        init(countryName: String, capitalCity: String)
        {
            self.countryName = countryName
            
          // 这里传的参数self(Country)还没创建完成,所以City也没有被创建出来, 就会造成上面的City可能是空, 所以需要 隐士的可选性形式 表示类型
            self.capitalCity = City(cityName: capitalCity, country: self) 
        }
        
        func showInfo()
        {
            print("This is \(countryName).")
            
            print("The capital is \(capitalCity.cityName).")
            
        }
    }
    
    Country(countryName: "China", capitalCity: "beijing").showInfo()
    

    相关文章

      网友评论

          本文标题:swift-解包方式

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