swift

基本算子

2021-06-03  本文已影响0人  iOS丶lant

阿操作者用于检查、更改或组合值的特殊符号或短语。例如,加法运算符(+)添加两个数字,如let i = 1 + 2,以及逻辑和运算符(&&)组合两个布尔值,如if enteredDoorCode && passedRetinaScan.

SWIFT支持您可能已经从C语言中了解的操作符,并改进了一些功能,以消除常见的编码错误。赋值运算符(=)不返回值,以防止在等于运算符(==)是有意的。算术运算符(+, -, *, /, %(等等)检测和禁止值溢出,以避免在处理大于或小于存储它们的类型的允许值范围的数字时避免意外的结果。您可以使用SWIFT的溢出运算符选择值溢出行为.

SWIFT还提供了C中找不到的范围操作符,如a..<b和a...b,作为表示一系列值的快捷方式。

术语

运算符是一元、二进制或三元的:

一元操作符在单个目标上操作(如-a)。一元前缀运算符就出现在目标前面(例如!b),以及一元后缀运算符立即出现在目标后面(例如c!).
双星操作人员操作两个目标(例如2 + 3)INFIX因为他们出现在两个目标之间。
三元操作人员对三个目标进行操作。与C一样,SWIFT只有一个三值运算符,即三元条件运算符(a ? b : c).
运算符影响的值是操作数。在表达中1 + 2,+符号是二进制运算符,它的两个操作数是值。1和2.

赋值算子

这个赋值算子 (a = b)初始化或更新a有价值的b:

放任 b = 10
瓦尔 a = 5
a = b
//a现在等于10

如果赋值的右侧是具有多个值的元组,则可以同时将其元素分解为多个常量或变量:

放任 (x, y) = (1, 2)
//x等于1,y等于2

与C和Object-C中的赋值运算符不同,SWIFT中的赋值运算符本身并不返回值。以下语句无效:

如果 x = y {
    //这是无效的,因为x=y不返回值。
}

此功能防止赋值运算符(=)不被意外使用时,等于操作符(==)实际上是有意的。通过if x = y无效,SWIFT帮助您避免代码中的此类错误。

算术算子

SWIFT支持四大标准算术算子对于所有数字类型:

加法(+)
减法(-)
乘法(*)
分部(/)

1 + 2       //等于3
5 - 3       //等于2
2 * 3       //等于6
10.0 / 2.5  //等于4.0

与C和Object-C中的算术运算符不同,SWIFT算术运算符默认不允许值溢出。您可以使用SWIFT的溢出运算符来选择值溢出行为(如a &+ b)。

还支持加法运算符。String级联:

“你好,” + “世界”  //等于“你好,世界”

余算子

这个余算子 (a % b)计算出多少倍数b会装进去a并返回遗留的值(称为余数).


剩余运算符(%)也称为模算子其他语言。然而,它在SWIFT中对于负数的行为意味着,严格地说,它是一个余数,而不是一个模运算。

下面是余数操作符的工作方式。计算9 % 4,你先算出多少4S会装进去9:


image.png

你可以装两个4在里面9,其余的是1(以橙色表示)。

在SWIFT中,这将被写为:

9 % 4    //等于1

的答案a % b,%运算符计算下列方程并返回remainder作为产出:

a = (b x some multiplier) + remainder

哪里some multiplier的最大倍数b可以装进去a.

插入9和4在这个等式中产生:

9 = (4 x 2) + 1

给出余值-1.

标志b的负值忽略。b。这意味着a % b和a % -b总是给出同样的答案。

一元减号算子

可以使用前缀切换数字值的符号。-,被称为一元减号算子:

放任 三 = 3
放任 小三 = -三       //分钟3等于-3
放任 三重奏 = -小三   //plus3等于3,或“减3”

一元减号运算符(-)是直接在其操作的值之前加上的,没有任何空白。

一元加法算子
这个一元加法算子 (+)只返回它所操作的值,不作任何更改:

放任 MinusSix = -6
放任 也是MinusSix = +MinusSix //MinusSix=-6

虽然一元加号运算符实际上什么也不做,但你可以用它在正数的代码中提供对称性,同时对负数也使用一元减号运算符。

喝奶茶

复合赋值算子

像C一样,SWIFT提供复合赋值算子合并赋值(=)进行另一次手术。一个例子是加法赋值算子 (+=):

瓦尔 a = 1
a += 2
//a现在等于3

表达a += 2是缩写a = a + 2。实际上,将加法和赋值组合成一个同时执行两个任务的操作符。

注复合赋值运算符不返回值。例如,你不能写let b = a += 2.

比较算子

SWIFT支持以下比较运算符:

等于(a == b)
不等于(a != b)
大于(a > b)
少于(a < b)
大于或等于(a >= b)
少于或等于:a <= b)

SWIFT还提供了两个身份算子 (===和!==),用于测试两个对象引用是否都引用同一个对象实例。

每个比较运算符返回Bool值以指示该语句是否为真:

1 == 1   //true,因为1等于1
2 != 1   //true,因为2不等于1
2 > 1    //true,因为2大于1
1 < 2    //true,因为1小于2
1 >= 1   //true,因为1大于或等于1
2 <= 1   //false,因为2不小于或等于1

比较运算符常用于条件语句,如if声明:

放任 名字 = “世界”
如果 名字 == “世界” {
    列印(“你好,世界”)
} 其他 {
    列印(“对不起\(名字)但我不认识你“)
}
//打印“hello,world”,因为名称确实等于“world”。

如果两个元组具有相同的类型和相同的值,则可以对它们进行比较。元组从左到右进行比较,每次一个值,直到比较发现两个不相等的值。对这两个值进行比较,该比较的结果决定了元组比较的总体结果。如果所有元素都相等,那么元组本身是相等的。例如:

(1, “斑马”) < (2, “苹果”)   //true,因为1小于2;没有比较“斑马”和“苹果”
(3, “苹果”) < (3, “鸟”)    //true,因为3等于3,而“Apple”小于“bird”
(4, “狗”) == (4, “狗”)      //true,因为4等于4,而“狗”等于“狗”

在上面的例子中,您可以在第一行看到从左到右的比较行为。因为1小于2, (1, "zebra")被认为少于(2, "apple"),而不管元组中的任何其他值。不重要的是"zebra"不少于"apple",因为比较已经由元组的第一个元素决定。但是,当元组的第一个元素相同时,它们的第二个元素是比较-这是发生在第二和第三行。

元组可以与给定的运算符进行比较,前提是该运算符可以应用于各个元组中的每个值。例如,如下面的代码所示,您可以比较两个类型的元组(String, Int)因为两个String和Int值可以使用<接线员。相反,类型的两个元组(String, Bool)无法与<运算符,因为<运算符不能应用于Bool价值。

(“蓝色”, -1) < (“紫色”, 1)        //OK,计算为true
(“蓝色”, 假的) < (“紫色”, 千真万确)  //错误,因为<无法比较布尔值

注SWIFT标准库包括小于七个元素的元组的元组比较操作符。若要将元组与七个或更多元素进行比较,必须自己实现比较运算符。

三值条件算子

这个三值条件算子是一个包含三个部分的特殊运算符,它的形式如下:question ? answer1 : answer2。这是基于以下两个表达式中的一个的快捷方法question是对的还是假的。如果question为真,则计算answer1并返回其值;否则,它将计算answer2并返回它的值。

三元条件运算符是以下代码的缩写:

如果 问题 {
    回答1
} 其他 {
    回答2
}

下面是一个例子,它计算表行的高度。如果该行有标题,则行高应比内容高度高50点,如果该行没有标题,则应比内容高度高20点:

放任 内容高度 = 40
放任 哈希德 = 千真万确
放任 划艇 = 内容高度 + (哈希德 ? 50 : 20)
//rowHight等于90
上一篇下一篇

猜你喜欢

热点阅读