Swift 中 _ 和 !和 ? 分别是什么东西呢?

####1、在swift中有么一个“_”符号,具体例子如下。

func greet(_ person: String, on day: String) -> String {
    return "Hello \(person), today is \(day)."
}

分析:使用_代表忽略(不使用)参数标签。

####2.?是什么东西呢?

? 和 ! 其实分别是Swift语言中对一种可选类型( Optional) 操作的语法糖。
?是一种判断后再拆包的语法糖
!是一种强制拆包的语法糖
当你不确定有值的时候就可以用 ?
当你确定有值的时候可以用 !

例如: var name: String? Optional其实是个enum,里面有None和Some两种类型。 其实所谓的nil就是Optional.None , 非nil就是Optional.Some, 然后会通过Some(T)包装(wrap)原始值, 这也是为什么在使用Optional的时候要拆包(从enum里取出来原始值)的原因。

Snip20190225_2.png

?的几种使用场景:
1.声明Optional值变量
2.用在对Optional值操作中,用来判断是否能响应后面的操作
3.用于安全调用protocol的optional方法
4.使用 as? 向下转型(Downcast)

!的使用场景
1.强制对Optional值进行拆包(unwrap)
2.声明Implicitly Unwrapped Optionals值,一般用于类中的属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值