Swift学习之九:基本运行符(Basic Operators)

来源:互联网 发布:网络管理协议snmp组成 编辑:程序博客网 时间:2024/06/01 09:06
基本运行符:

+(加法、正数)

- (减法、负数)

*  (乘法)

/ (除法)

% (求余)  : 在Swift中,求余可以是浮点数求余。

&&(逻辑与) 

|| (逻辑或)

^ (逻辑异或) 

表示范围的符号:..和...(两个点:不包括下界和三个点包括下界)

++,

--


赋值操作符

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // 赋值操作符=,表示把某个值赋给对应的常量或者变量  
  2. let b = 10  
  3. var a = 5  

如果右边的赋值是一个元组,那么可以分解成多个常量或者变量:

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // x = 1, y = 2  
  2. let (x, y) = (1, 2)  

在swift中,赋值语句不会以返回值,与C和OC是不同的。下面的写法是不对的:

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. if x = y {  
  2.  // Error,因为赋值语句不会返回值  
  3. // x的值变为y的值,但是x是整型,不是Bool型  
  4. }  
但是呢,swift在我们写x = y时会主动提示 == 而不是=


算术运行符

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. 1 + 2 // 3  
  2. 5 - 3 // 2  
  3. 2 * 3 // 6  
  4. 10.0 / 2.5 // 4.0  

与C和OC中的算术运算符不一样,Swift中的算术运算术默认是不允许溢出的。

如果想要得到溢出的值,那么可以使用溢出操作符,如a &+ b等。

下面的加法是对字符串的,是执行字符串连接:

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. "hello, " + "world"  


两个Character值或者一个是Character值,另一个是String类型,可以相加形成字符串:

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. let dog: Character = "D"  
  2. let cow: Character = "C"  
  3. let dogCow = dog + cow  


求余运算符

在swift中,求余可以是浮点数。

如:

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // 9 = 2 * 4 + 1  
  2. 9 % 4 // 1   

在计算余数时,计算公式是这样的:

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. a = (b * some multiplier) + remainder  

看下面的例子:

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // -9 = (-2 * 4) + (-1)  
  2. -9 % 4 // -1  

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // -9 = (2 * -4) + (-1)  
  2. -9 % -4 // -1  


[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // 9 = (-2 * -4) + 1  
  2. 9 % -4 // 1  

结论:所以求余的结果是正数还是负数,就看第一个操作数是不是正数。如果第一个操作数是负数,那么余数是负数,否则是正数


浮点数求余

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // 8 = (3 * 2.5) + 0.5  
  2. 8 % 2.5 // 0.5  

自增、自减运算符
与C、OC中的自增版头运算符一样

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. var i = 0  
  2. j = ++i  // i = 1, j = 1  
  3.   
  4. var i = 0  
  5. j = i++ // i = 1, j = 0  
  6.   
  7. var i = 1  
  8. j = i-- // i = 0, j = 1  
  9.   
  10. var i = 1  
  11. j = --i // i = 0, j = 0   


比较运算符

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. 1 == 1 // true  
  2. 2 != 1 // true  
  3. 2 > 1 // true  
  4. 1 > 2 // false  
  5.   
  6.    
[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. let name = "world"  
  2. if name == "world" {  
  3.     println("hello, world")  
  4. }  


三元运算符

三元运行符是  ? :

如:

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. let contentHeight = 40  
  2. let hasHeader = true  
  3. let rowHeight = contentHeight + (hasHeader ? 50 : 20)  

范围运算符
在swift中提供了两种范围运算符,a..b和a...b,前者不包含b,后者包含b

如:

[plain] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. // 打印出12  
  2. for index in 1..3 {  
  3.   print("\(index)")   
  4. }  
  5.   
  6. // 打印出123  
  7. for index in 1...3 {  
  8.   print("\(index)")   
  9. }  
0 0
原创粉丝点击