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里取出来原始值)的原因。

swift 中 _ 和 !和 ? 分别是什么东西呢?_第1张图片
Snip20190225_2.png

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

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

你可能感兴趣的:(swift 中 _ 和 !和 ? 分别是什么东西呢?)