Swift一步步学习

Swift学习之可选类型

2018-07-27  本文已影响1人  coderhlt

一、定义可选类型

 1.  完整定义可选类型
 var name : Optional<String> = nil
 
 2. 语法糖
 var name : String? = nil

二、可选赋值

 赋值方式一:
 name = Optional("11111")

 赋值方式二:
 name = "mmm"
可选变量设置为没有值
var serverResponseCode: Int? = 404
serverResponseCode = nil//你可以通过给可选变量赋值一个 nil 来将之设置为没有值.
var surveyAnswer: String?
// 如果你定义的可选变量没有提供一个默认值,变量会被自动设置成 nil 。

三、可选取值

    let convertedNumber:Int? = 12
    let value = convertedNumber!
    print(value)
 //利用相等运算符 ( == )和不等运算符( != )。如果一个可选有值,他就“不等于” nil 。
 let convertedNumber:Int? = 12
   if convertedNumber != nil {
     let value = convertedNumber!
      print("可选包含值\(value )")
   }     
    let convertedNumber:Int? = 12

     if let newconvertedNumber = convertedNumber {
          let value = newconvertedNumber
          print("可选包含值\(value)")
      }

四、隐式展开可选项

有时在一些程序结构中可选项一旦被设定值之后,就会一直拥有值。在这种情况下,就可以去掉检查的需求,也不必每次访问的时候都进行展开,因为它可以安全的确认每次访问的时候都有一个值。这种类型的可选项被定义为隐式展开可选项。通过在声明的类型后边添加一个叹号( String! )而非问号( String? ) 来书写隐式展开可选项。

//可选字符串
let possibleString: String? = "An optional string."
let forcedString: String = possibleString! // requires an exclamation mark

//隐式展开可选项字符串
let assumedString: String! = "An implicitly unwrapped optional string."
let implicitString: String = assumedString // no need for an exclamation mark
//你可以把隐式展开可选项当做在每次访问它的时候被给予了自动进行展开的权限,你可以在声明可选项的时候添加一个叹号而不是每次调用的时候在可选项后边添加一个叹号。
//你可以像对待普通可选一样对待隐式展开可选项来检查里边是否包含一个值:
if assumedString != nil {
   print(assumedString)
}

// prints "An implicitly unwrapped optional string."
你也可以使用隐式展开可选项通过可选项绑定在一句话中检查和展开值:
if let definiteString = assumedString {
   print(definiteString)
} 
上一篇下一篇

猜你喜欢

热点阅读