您的位置:首页 > 移动开发 > Swift

Swift之可选数据类型

2016-04-01 01:39 288 查看
刚刚看swift语言,被可选类型弄得很绕,看了好几遍,大概整理了一下。

使用可选类型的意义:当一个我们访问一个可选类型的常量或者变量的时候当它的值为空时不会报空指针而是表示没有值(避免了空指针的错误)。即使用可选(optionals)来处理值可能缺失的情况。

可选类型的值有两种情况:有值、或者为nil。

PS:Swift 的nil和Objective-C 中的nil并不一样。在 Objective-C 中,nil是一个指向不存在对象的指针。在 Swift中,nil不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选都可以被设置为nil,不只是对象类型。

概念:
在OC开发中,如果一个变量暂停不使用,可以赋值为0(基本属性类型)或者赋值为空(对象类型)
在swift开发中,nil也是一个特殊的类型.因为和真实的类型不匹配是不能赋值的(swift是强类型语言)
但是开发中赋值nil,在所难免.因此推出了可选类型
可选表示:-有值,等于
x或者没有值

定义:
//写法一:定义可选类型

let name : Optional<String> = nil

// 写法二:定义常用可选类型

let name : String? = nil
//写法三:定义隐式解析可选
let name:String ! = "have value"

使用?定义一般可选类型,使用!定义隐式解析可选类型(可将此可选类型当做普通类型数据来使用二不需要绑定解包取值,但是当值为nil时解包取值会出错)。

赋值
//
演练一:给可选类型赋值

var string : Optional<String> = nil
//
给可选类型赋值

string = "Hello world"

print(string)

// 结果:Optional("Helloworld")\n

// 因为打印出来的是可选类型,所有会带Optional

取值

通过if语句来判断是否有值,要取出值得花可以通过可选绑定来解析值。

// 取出可选类型的真实值(解包)

print(string!)

// 结果:Hello world\n

// 注意:如果可选类型为nil,强制取出其中的值(解包),会出错

string = nil

print(string!) // 报错
//
正确写法:

if string != nil {

print(string!)

}
//
简单写法:为了让在if语句中可以方便使用string

// 可选绑定

if let str = string {

print(str)

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: