swift语法--04可选类型

swift语法--可选类型


可选类型

  • 什么是可选类型: 一个变量可以有值也可以没有值, 我们就称之为可选类型

  • 语法糖: 因为在Swift中可选类型用得非常非常多, 所以为了简化代码, Swift提供了一个语法糖, 可以用? 代替 Optional<数据类型>

  • 优点: 提高代码阅读性

  • 格式: 修饰符 变量名称:Optional<数据类型>
    修饰符 变量名称: 数据类型?

//格式1 修饰符 变量名称:Optional<数据类型>
//var number: Optional = nil
//var number2: Int = nil

//格式2 修饰符 变量名称: 数据类型?
let number3: Int? = 55
print(number3)
  • 在Swift中如果使用一个可选类型的变量/常量, 必须解包操作
  • 解包: 只需要在变量/常量后面加上 !
  • !含义: 代表告诉系统该变量/常量中一定有值, 如果强制解包一个没有值的常量/变量,那么会报错
//解包
//let number: Optional = 10
let number : Int? = 10
print(number!)
let number2 = 10
let sum = number! + number2
提示:

对于初学者来说 ? ! 是最为头疼的语法, 刚开始的时候建议利用Xocde的语法提示来解决? !的问题
*/

可选类型注意点:
  • 在开发中一般情况下尽量不要强制解包一个可选类型, 否则会引发错误
    */
// 通过NSURL(string:)方法得到的url是一个可选类型

//let url = NSURL(string: "http://www.ererzuishuai.com")
//print(url)
//let request = NSURLRequest(URL: url!)//这里就强制解包了

let url = NSURL(string: "http://www.ererzuishuai.com/")
print(url)
//let request = NSURLRequest(URL: url!)
//应该对其是否有值进行判断
if url != nil
{
    let request = NSURLRequest(URL: url!)
}
可选绑定

可选绑定: 如果url不为nil, 系统内部就会自动将解包之后的值赋值给temp, 并且只有temp有值时才会执行{}中的代码

// Swift开发中推荐这种写法
let url = NSURL(string: "http://www.ererzuishuai.com/")
if let temp = url
{
    let request = NSURLRequest(URL: temp)
}

你可能感兴趣的:(swift语法--04可选类型)