[Swift]基本运算符

1. 赋值:

    1) 普通的=,以及复合的+=等性质和C语言的一模一样;

    2) 不一样的地方要提一下,就是Swift的中的普通赋值和复合赋值都不返回值,比如c = a = b、c = (a = b)、c = a += b、c = (a +=b)都是错误的!


2. 自加/自减:

    1) Swift也支持++和--,前后加、前后减都支持;

    2) 升级的地方就是也可以作用域浮点数,同样也是加1和减1!


3. 关于溢出处理:

    1) Swift对数据溢出的检查非常严格,无孔不入:

var x: Byte = 21 * 100 // 编译错误!
var x: Byte = y * z // 如果y、z乘积超出Byte的返回则运行时错误!
这样的错误Xcode都能精确定位!

    2) 如果要执意使用溢出的数据Swift也允许,只不过必须要使用溢出相应的溢出运算符才行,即&[算术运算符],比如:

let x: Byte = 234 &* 23
println(x) // 6
有时溢出会用于某些特定的算法,特别是跟位操作有关的一些算法,因此溢出并不是在任何情况下都是错误的!


4. 求余运算:

    1) Swift的求余运算有所升级,也支持浮点数的求余;

    2) 回顾求余基本概念:a % b的值就是求解该参数方程,a = (b × 倍数) + 余数,因此a和b都可以是负数,只不过如果b是负数就和b是正数的效果相同,但是如果a是负数那结果要么为0要么为负数;

    3) 对于浮点数求余,原理也是求解上述的参数方程,只不过倍数一定是一个整数而已,余数便为浮点数了,比如8.5 % 2.5 = 1.0,就是根据该方程:8.5 = (2.5 × 3) + 1.0得来的;


5. 比较操作符:

    1) 和C语言的6中比较符一样,只不过还多了两种:===和!==;

    2) ==和!=用来比较变量或者容器的内容,而===和!==就用来比较地址,即是否是同一个变量,一般用在引用类型的数据(Swift中只有类才行),即用来比较两个变量或常量是否引用了同一个对象实例,其它基本数据类型(值类型)的都不能使用这两个比较符号!

    3) 在对类对象的引用进行赋值时需要注意了,比如a和b分别为指向不同的两个对象的引用,如果a = b,则a和b将同时指向a所指向的对象,此时a === b的结果就是true了,这点和Java一样!


6. 逻辑运算符符:

    1) 和C语言完全一样,!、&&、||;

    2) 结合性、短路性等完全一致!

    3) 当和自加、自减运算符一起使用时需要注意:

var x = 6, y = 8
println(x > y && x++ == --y) // 这种情况会先计算x > y
println("x = \(x), y = \(y)") // 6和8


7. 位运算符:

    1) 也和C语言完全一样,~、|、&、^、<<和>>;

    2) 同样,对于负数的右移,高位使用符号位占位,这点要注意了!

    3) 位运算符中!的结合性在所有运算符中最强,其余的^之类的和/、*运算符优先级相同,比如16 / 2 ^ 2就是先算/再算^;


8. 区间操作符:

    1) 一般用来枚举一个整型数数值区间(虽然区间端点使用浮点数也不会报错,但是运行时会出现一些异常,可能是Swift还并不完备,因此不建议使用浮点数作为区间端点);

    2) 一共有两种,一种为闭区间,比如a...b,表示[a, b],另一种是半开半闭区间a..<b,表示[a, b),注意中间点的个数不一样,枚举数组或字典的是否非常有用:

let places = ["北京", "广州", "上海"]
for i in 0..<places.count
{
    println("第\(i + 1)个地方是\(places[i])")
}

for i in 1...5 // 闭区间
{
    println("index = \(i)")
}


9. 其它操作符:

    1) 三元操作符:?:,和C语言不同的是?前面的必须是逻辑表达式,即布尔表达式,不能用数值来代替逻辑表达式的结果!

    2) ->:用于说明函数的返回值类型;

    3) ,:用于集合中元素的分割;

    4) ::用于字典中键-值的分割;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值