Swift语言中两种特殊的运算符

Optional可选值类型是Swift语言的一大特点,Swift语言中的空合并运算符是专门为Optional值类型所设计的。除了空合并运算符,Swift语言中的区间运算符也十分强大易用,熟练使用这些运算符将极大地提高开发效率。

空合并运算符

Optional可选值类型是Swift语言的一个独特之处,空合并运算符就是针对可选类型而设计的运算符。首先来看一段示例代码:

上面的示例代码就是一个简单的if-else的选择结构,利用条件运算符(三目运算符),可以将上面的代码简写成如下形式:

使用条件运算符改写后的代码简单很多。Swift语言还提供了空合并运算符来更加简洁地处理这种Optional类型值的条件选择结构,空合并运算符由“??”表示。上面的代码可以改写成如下形式:

使用空合并运算符改写后的代码更加简洁。空合并运算符“??”是一个二元运算符,其需要两个操作数,第一个操作数必须为一个Optional值,如果此Optional值不为nil,则将其进行拆包操作,并作为空合并运算符的运算结果。如果此Optional值为nil,则会将第二个操作数作为空合并操作运算的结果返回。使用空合并运算符来处理有关Optional值的选择逻辑将十分方便。

区间运算符

在C语言中,关于范围概念的描述常常会使用一个表达式来表示,例如:

在Objective-C语言中提供了NSRange这样一个结构体来描述范围,虽然直观了许多,但开发者在使用时需要构造NSRange实例,使用起来就略显繁琐。Swift中除了支持Range结构体来描述范围外,还提供了一个区间运算符来快捷直观地表示范围区间。示例如下:

也可以通过“~=”运算符来检查某个数字是否包含于范围中,示例如下:

区间运算符最常见于for-in循环结构中,开发者常常会使用区间运算符来定义循环次数,示例如下:

提示:在for-in循环结构中,如果in关键字后面是一个集合,则变量index会自动获取集合中的元素;如果in关键字后面是一个范围,则index获取到的是从左向右依次遍历到的范围索引数。

猜你喜欢

转载自blog.csdn.net/Alexander_Wei/article/details/78007433