swift 可选项 "?" 和 "!"

来源:互联网 发布:adhoc算法 编辑:程序博客网 时间:2024/06/06 01:23

1.可选项目的

   解决“有” 和 “无”的问题


2.可选项定义
   只能用" ?",表示变量可以为 nil ,或者有一个值

  var mainVC:UIViewController? -> 只是定义,没有分配空间和初始值


3.可选项解包

  (1). "!" 强行解包
  目的是为了参与计算,但是存在风险,最好需要判断是否为nil(可以用 guard let || if let)
  guard let value = response.result.valueas? [String:AnyObject] else{return}

  (2). "?" 可选解包
  不参与计算,主要用于调用方法。如果对象存在就调用方法,如果对象为nil就什么都不做


4.类型转换

  (1). as?
  前面的结果是可选的(guard let || if let 一定用as?)

  (2). as!
  前面的结果一定有值

  (3). as  不需要类型转换,可直接用。因为底层做了结构体和 OC 对象的桥接
  NSString -> String
  NSArray -> []
  NSDictionary -> []
  


0 0
原创粉丝点击