zoukankan      html  css  js  c++  java
  • swift-可选值

    swift的nil和OC有些不一样,OC只有对象可以用nil,swift基础类型(整形,浮点)没有值时也是nil,当初始化的时候,swift可以没有初始值的,产生了可选值Optional。

    定义可选值很容易,只需在类型的后面加一个?就行。例如:var value:Int?
    
    一个Optional值和一个非Optional值的区别,Optional值未经初始化虽然为nil,但普通变量连nil的没有。
    
    var value:Int?
    print(value) //nil
    
    var value:Int
    print(value) //直接报错
    
    
    提取可选类型的值(强制解析)
    Optional值不能被直接使用,因为可选值有两种状态,分别是有值和没值,所以我们需要告诉编译器是否有值
    
    强制解析可选类型的值,只需在变量后加!就可以。
    
    var value:Float?
    
    var value2:Float = value!
    
    print(value2)
    
    注意:如果value没有值,会报运行时错误。
    
    当我不知道 Optional是否有值,该怎么操作?
    
    如果值不为nil,再执行后面的代码。
    
    
    var value:Int? = 10
    
    if let tmpValue = value {
    
    print(tmpValue)
    
    //    var result :Int = value!
    //
    //    var result2 :Int = value!
    //
    //    print(value)
    //
    //    print(result)
    }
    
    当你不确定可选值是否有值是,尽量使用if来判断一下
    
    let url = NSURL(string: "www.baidu.com")
    if let tmpUrl = url {
        NSURLRequest(URL: tmpUrl)
    }
    
    可选项:??,他可以对nil进行快速判断,??后面的值是参与计算的
    
    var num:Int?
    let result :Int = num ?? 0
    print(result)
  • 相关阅读:
    食物
    连在一起的幻想乡
    【XSY3209】RGB Sequence
    【Luogu4389】付公主的背包
    【BZOJ4555】【TJOI2016】【HEOI2016】求和
    【BZOJ3456】城市规划
    【BZOJ2693】jzptab & 【BZOJ2154】Crash的数字表格
    【Learning】左偏树
    小Z的袜子
    【BZOJ3625】【CF438E】小朋友和二叉树
  • 原文地址:https://www.cnblogs.com/ldnh/p/5508024.html
Copyright © 2011-2022 走看看