在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Unary Minus Operator (一元负号操作符) 数值的符号可以通过使用前缀-来切换,(-)称为一元负号操作符. let three = 3 let minusThree = -three // minusThree equals -3 let plusThree = -minusThree // plusThree equals 3, or "minus minus three 一元符号操作符(-)直接写在要切换数值的前面,中间没有空格. Unary Plus Operator (一元正号操作符) 一元正号操作符(+)只是简单的返回操作值本身,没有任何改变: let minusSix = -6 let alsoMinusSix = +minusSix // alsoMinusSix equals -6 尽管一元正号操作符并没有做任何实际事情,但是中代码中,它可以保持一个正数同一个负数可读的对称性. Compound Assignment Operators (复合赋值操作符) 像C语言一样,Swift提供了复合赋值操作符,下面的例子是复合加法操作符(+=): var a = 1 a += 2 // a is now equal to 3 表达式 a += 2是a = a + 2 的缩写.实际中是加法和赋值组合为一个操作来执行. 注意点: 复合赋值操作符没有返回值.例如你不可以在代码中写:let b = a + = 2,这与自增和自减操作是不同的. Comparison Operators (比较操作符) 在Swift中,支持所有标准C的比较操作: Equal to (a == b) // 等于 Not equal to (a != b) // 不等于 Greater than (a > b) // 大于 Less than (a < b) // 小于 Greater than or equal to (a >= b) // 大于等于 Less than or equal to (a <= b) // 小于等于 注意点: Swift另外提供了两个用操作符( ===和 !== )来检测是否两个对象引用都指向相同的一个对象实例. 每个比较操作符返回一个Bool类型的值来表示结果是true或者不是: 1 == 1 // true, because 1 is equal to 1 2 != 1 // true, because 2 is not equal to 1 2 > 1 // true, because 2 is greater than 1 1 < 2 // true, because 1 is less than 2 1 >= 1 // true, because 1 is greater than or equal to 1 2 <= 1 // false, because 2 is not less than or equal to 1 比较操作符通常用在条件判断语句,例如if语句: let name = "world" if name == "world" { println("hello, world") } else { println("I'm sorry \(name), but I don't recognize you") } // prints "hello, world", because name is indeed equal to "world” Ternary Conditional Operator (三元条件操作符) 三元条件操作符是针对三个部分的特殊操作,它写为:question ? answer1 : answer2.它是一个关于question是true或false的升级版的缩写.如果question是true,它计算answer1并 且返回answer1的值;否则,它计算answer2,并返回answer2的值. 三元条件操作符是下面代码的一个缩写版: if question { answer1 } else { answer2 } 下面的代码样例,计算表格一行的像素行高.如果有表头,那么行高是内容的像素高再加50,如果没有表头,那么行高是内容的像素高度加20: let contentHeight = 40 let hasHeader = true let rowHeight = contentHeight + (hasHeader ? 50 : 20) // rowHeight is equal to 90 上面的代码,也可以用下面的代码处理: let contentHeight = 40 let hasHeader = true var rowHeight = contentHeight if hasHeader { rowHeight = rowHeight + 50 } else { rowHeight = rowHeight + 20 } // rowHeight is equal to 90 第一个代码样例中,使用三目条件操作符可以通过一行代码给rowHeight正确的赋值.它比第二个代码更加精简准确,去除了不必要的将rowHeight转为一个变量过程,因为在if语句中,它 的值不需要修改. 三目条件操作符有效的减少了两个表达式判断方式.但还是要谨慎的使用三目条件操作符,否则会导致代码可读性差.尽量避免在三目条件操作中使用多个实例的复杂语句.
|
请发表评论