Swift之可选数据类型

刚刚看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)
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值