运算符 这里介绍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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。