快捷搜索:  as  test  1111

关情纸尾---swift- 运算符

1.算术运算符

+ - * / % ++ --

除了取模,其它和OC一样,包括优先级

var result = 10 + 10

result = 10 * 10

result = 10 - 10

result = 10 / 10

print(result)

留意:Swift是安然严格的编程说话, 会在编译时刻反省是否溢出

然则只会反省字面量而不会反省变量

以是在Swift中必然要留意隐式溢出

碰到这种问题可以使用溢出运算符办理该问题:

http://www.yiibai.com/swift/overflow_operators.html

2.取模 %

OC: 只能对整数取模

NSLog(@"%tu", 10 % 3);

Swift: 支持小数取模

print(10 % 3.5)

3.自增 自减

var number = 10

number++

print(number)

number--

print(number)

注:swift3.0后没有自增,自减了

直接是 number += 1 number -= 1

4.赋值运算

var num1 = 10

num1 = 20

num1 += 10

num1 -= 10

num1 /= 10

num1 *= 10

num1 %= 5

print(num1)

基础用法和OC一样, 独一要留意的是表达式的值

4.1 OC: 表达式的结合偏向是从左至右

全部表达式的值整体的值即是着末一个变量的值, 简而言之便是继续赋值

写法为:

int num1;

int num2;

num2 = num1 = 10;

NSLog(@"%d",num2);

4.2 Swift: 不容许继续赋值, Swift中的全部表达式是没有值的.

主如果为了避免 if (c == 9)

这种环境误写为 if (c = 9) ,c = 9是一个表达式,表达式是没有值的

以是在Swift中if (c = 9)不成立

下面这个写法是在swift傍边不容许的

var num1:Int

var num2:Int

num2 = num1 = 10

5.关系运算符

> =100var result2 = 250 > 100 ? 250 : 100

print(result2)

6.逻辑运算符

C说话和OC并没有真正的Bool类型

C说话的Bool类型非0即真

OC说话的Bool类型是typedef signed char BOOL;

Swift引入了真正的Bool类型

Bool true false

Swift中if的前提只能是一个Bool的值或者是返回值是Bool类型的表达式

OC中if可所以任何整数(非0即真),

然则存在的问题是可能将判断写错, 写成了赋值 if(isOpen = 2)

在开拓中为了避免这个问题

有履历的法度榜样员会这样写 if(2 == isOpen)来避免这个问题.

在Swift中很好的办理了这个问题

逻辑运算符在swift傍边只能操作Bool类型数据

在OC傍边长短0即真. 可以操作整形

在swift傍边不容许这种操作.其它基础和OC同等

var open = false

if !open {

print("打开")

}

var age = 20

var height = 180

var wage= 30000

if (age > 25 && age175) || wage > 20000

{

print("完美")

}

7.区间

闭区间: 包孕区间内所有值a...b 例如: 1...5

半闭区间: 包孕头不包孕尾a..

您可能还会对下面的文章感兴趣: