Swift 运算符

来源:互联网 发布:淘宝退货程序 编辑:程序博客网 时间:2024/05/11 05:14
运算符 这里介绍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 //-19 % -4 //1-9 % -4 //-1求余结果的正负性跟%左边数值的正负一样 跟C 语言不一样的是 Swift 的%支持浮点数的计算 8 % 2.5 //0.5Bool类型(逻辑类型)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 = 10let c = a ? 100:200正确写法 let c = a!=0?100:200let 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.maxlet y = x + 1第二行代码会报错 Swift 为整型的计算提供了5个&开头的运算符 能对超出取值范围的数值灵活处理 &+&-&*&/&%上溢出 let x = UInt8.max let y = x &+ 1第一行过后 x的值为255最大值第二行代码过后y 的值是0(最小值)下溢出let x = UInt8.minlet y = x & - 1第一行过后 x的值为0最小值第二行代码过后y 的值是255(最大值)有符号也有类似的溢出现象let x = Int8.min let y = x& - 1第一行 x = -128第二行 y = 127默认情况下 一个数除以0 或者对0取余数 编译器都会报错let x = 10let y = x / 0let z = x % 0上面报错 如果是下面的情况 let x = 10let y = x &/ 0 let z = z &% 0y 和 z 的值都为 0

0 0