swift02-基本运算符

赋值、比较、逻辑等运算符使用介绍

Posted by catface on January 3, 2015

运算符

赋值运算符:

  • 普通赋值

    1
    2
    
      var num
      num = 5
    
  • 元组赋值

    1
    
      let (x, y) = (0, 0)
    
  • = 操作不返回任何值

算数、组合赋值、自增自减、、负号、字符串拼接

  • 求余时符号只看左边,可对浮点数求余

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
      let a = 3, b = 4
        
      // 算数运算
      var c = 0
      c = a + b
      c = a - b
      c = a * b
      c = a / b
      c = a % b
        
      // 组合赋值运算
      c += a
      c -= a
      c *= a
      c /= a
      c %= a
        
      // 自增自减运算
      c++ // 先自增,再返回值
      c--
      ++c // 先返回值,再自增
      --c
        
      // 负号
      -c
        
      // 字符串拼接
      String str = "hello " + "world"
    

比较运算符

1
2
3
4
5
6
7
8
let a = 3, b = 4

a == b
a != b
a > b
a >= b
a < b
a <= b

? : 三目运算符

1
2
let num = 3
num == 5 ? "yes" : "no"

?? 空合运算符

  • 判断a,若为空则返回b值,若不为空解封并返回a值

  • a必须是Optional类型

  • b的存储值类型必须和a一致

    1
    2
    3
    
      var a:Int?, b = 5
      a ?? b
      a != nil ? a! : b
    

区间运算符

  • a ... b 闭区间
    • b必须大于a

    • 半开区间:a ..< b 或者 a >.. b

    • 数组遍历时:0 ..< strArr.count

    1
    2
    3
    4
    5
    6
    7
    8
    
      for x in 1 ... 9 {
          for var y = 1; y <= x; y++ {
              print("\(y) * \(x) = \(x * y)", terminator:"\t")
              // 字符串插值:通过\()来插入实际值
              // \()中不能包含非转义\、回车、换行符
          }
          print()
      }
    

逻辑运算

  • 非:!a

  • 与(短路):a && b

  • 或(短路):a || b

推荐使用 () 来明确优先级