Swift 运算符

运算符 

这里介绍Swift中一些运算符 
和OC 里面相同的这里就不再介绍了  
新增加的的有
范围运算符 ..< 、...
溢出运算符&+ &- &* &% &/

虽然基本的运算符大致相同 但是有些细节还是需要注意的
赋值运算符 
1对1 赋值运算符 
var a = 5 
let b = 20 
N对N 赋值 
let(x,y) = (1,2) // 这里是元组 后面会讲到
跟C/OC 不一样的地方是Swift 的赋值运算符没有返回值

if(x=y){}
//上面的代码是错误的 因为x=y 没有返回具体的值
这样的好处是防止= 和 == 误用

求余运算符
%在Swift 中叫做“求余运算符”
9 % 4   //1
-9 % 4 //-1
9 % -4 //1
-9 % -4 //-1
求余结果的正负性跟%左边数值的正负一样 
跟C 语言不一样的是 Swift 的%支持浮点数的计算 
8 % 2.5 //0.5

Bool类型(逻辑类型)
Bool 类型
true 真 
false 假 
在C 语言中0 是假 非0 就是真 而在Swift中没有这种状态
if 语句的条件必须是Bool 类型的

错误的写法 
if(10){
	println("条件成立")

}
正确写法
if(true)
{
	printf("条件成立")
}

比较运算符、逻辑运算符、三目运算符
比较运算符、逻辑运算符会返回Bool类型的值 取值有两种可能 
true 真 6 > 5 (7 > 6)&&(9!=7)
false 假 6 < 5(7 >= 6)&&(9==7)

三目运算符的条件必须是Bool类型的值
错误写法 
let a = 10
let c = a ? 100:200

正确写法 
let c = a!=0?100:200
let c = false ? 100:200


范围运算符
范围运算符用来表示一个范围 有两种表示形式 
闭合范围 a...b [a,b]
半闭合范围 a..<[a,b)

例子
for i in 1..< 5 {
	println(i)
}

for i in 1...5{
	println(i)
}

溢出运算符 (新知识)
每种数据类型都有自己的取值范围默认情况下一旦赋了一个超出取值范围的数值
就会产生编译或者运行时的错误 
下面的写法是错误的 
let x = UInt8.max
let y = x + 1
第二行代码会报错 

Swift 为整型的计算提供了5个&开头的运算符 能对超出取值范围的数值
灵活处理 
&+
&-
&*
&/
&%

上溢出 
let x = UInt8.max 
let y = x &+ 1
第一行过后 x的值为255最大值
第二行代码过后y 的值是0(最小值)


下溢出
let x = UInt8.min
let y = x & - 1
第一行过后 x的值为0最小值
第二行代码过后y 的值是255(最大值)

有符号也有类似的溢出现象
let x = Int8.min 
let y = x& - 1
第一行 x = -128
第二行 y = 127

默认情况下 一个数除以0 或者对0取余数 编译器都会报错
let x = 10
let y = x / 0
let z = x % 0
上面报错 

如果是下面的情况 
let x = 10
let y = x &/ 0 
let z = z &% 0
y 和 z 的值都为 0

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值