Swift(四、基本运算符及高级操作符)

时间:2021-11-01 17:47:21

1、Swift入门学习笔记(第一版),对Swift的基础知识点进行梳理总结。知识点一直在变,只是作为参考,以苹果官方文档为准~

2、在学习完基本的知识点以后会结合官方文档及相关资料,在此版本的基础上进行添加更改。


四、基本运算符及高级操作符


注:Swift中与C和OC相同的部分本文不作累述


基本运算符


Swift 支持大部分标准 C 语言的运算符,且改进许多特性来减少常规编码错误

1、赋值运算符

赋值符(=)不返回值,以防止把想要判断相等运算符(==)出错(=)符导致的错误

let a = 1
var b = 2
//if b = a {
// 编译不通过,其他语言可以通过,b=a不返回值,避免犯错
//}

2、算数运算符

算术运算符(+,-,*,/,%等)会检测并不允许值溢出,以此来避免超出范围的范围时导致的异常结果

2.1、浮点数取余操作

var x = 7%2.5
print(x) // 2.0

3、范围运算符

3.1、闭区间运算符

(a…b) 三个点定义a到b的范围,包含a,b

for index in 1...5 {
print(index)
}

Output:

1
2
3
4
5

3.2、半开区间运算符

a..

for index1 in 1..<5 {
print(index1)
}

Output:

1
2
3
4

高级操作符


1、位运算符

按位反,位与,位或,位异或此处不讲解,对左移右移带过

x>>a: x右移a位,无符号整数高位0补位,有符号高位符号位补位

x<<a:x左移a位,低位补0


2、溢出运算符


当向一个整数赋超过它容量的值是,Swift会报错而不是生成一个无效的数,更加安全

var potentialOverFlow = Int8.max
//potentialOverFlow += 1 //报错

此时,可以选择溢出运算符让系统在数值溢出时草去截断操作
溢出加法 &+
溢出减法 &-
溢出乘法 &*

//以溢出加法为例说明
var testOverFlow = UInt8.max
testOverFlow = testOverFlow &+ 1
print(testOverFlow) //值为0

UInt8的范围是0-255,对255进行+1操作,超出UInt8能容纳位数导致数值溢出,留在UInt8边界内的即为计算结果
注:有符号数值溢出计算要考虑符号位


3、运算符函数

这部分在学完函数部分再补充