前端之家收集整理的这篇文章主要介绍了
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@H_301_1@