Swift 可选(Optionals)类型

2018-10-09  本文已影响0人  TheMrBigHead

Swift 的可选(Optional)类型,用于处理值缺失的情况

Swfit语言定义后缀?作为命名类型Optional的简写,换句话说,以下两种声明是相等的:
var optionalInteger: Int?
var optionalInteger: Optional<Int>

注意,在类型和 ?之间没有空格

如果一个可选类型的实例包含一个值,你可以用后缀操作符 !来访问这个值,如下所示:
optionalInteger = 42
optionalInteger! // 42

使用操作符!去获取值为nil的可选变量会有运行时错误

import Cocoa

var myString:String? = nil

if myString != nil {
    print(myString)
}else{
    print("字符串为 nil")
}

强制解析

当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值,这就是强制解析

自动解析

在声明可选变量时使用感叹号(!)替换问号(?)

import Cocoa

var myString:String!

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

可选绑定

使用可选绑定(optional binding)来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if let yourString = myString {
   print("你的字符串值为 - \(yourString)")  //如果myString中有值,则执行这个逻辑
}else{
   print("你的字符串没有值")
}

输出结果:

你的字符串值为 - Hello, Swift!
上一篇下一篇

猜你喜欢

热点阅读