1. 程式人生 > 其它 >【學習】重學Swift5-運算子&流程控制

【學習】重學Swift5-運算子&流程控制

二、運算子和表示式

+ - * \ = 
// 溢位
&+  &-  &*

// 合併空值運算子
a??b // a必須是一個可選型別。b必須與a的儲存型別相同 與(a = nil ? a! : b)相同

// 區間運算子
a...b // 閉區間運算子 從a到b 包含ab
a..<b // 半開區間運算子 從a到b 不包含b
a...   ...a      ..<a        // 單側區間

// 倒敘索引
reversed()

// comparable區間
"a"..."z"

// 位運算 與其他語言一致
/*
~ 位取反運算子 	所有位數取反
& 位與運算子 	都是1時返回1
| 位或運算子		有一個是1時返回1
^ 位異或運算子	對應位不相同返回1
<<    >>  左移、右移運算子 左移翻倍,右移減半
*/

// 運算子過載

三、流程控制

  1. for-in

    for i in 0..3 {
      
    }
    
    for c in "hello world" {
      
    }
    
    let names = ["zhangsan", "lisi", "wangwu"]
    for name in names {
      
    }
    
    let numberOfLegs = ["spider" : 8, "ant" : 6, "cat" : 4]
    for (animal, legs) in numberOfLegs {
        print("\(animal) have \(legs) legs")
    }
    
    for t in numberOfLegs {
        print(t.0, t.1)
    }
    
    for _ in 1...5 {
      anser *= 4
    }
    
    // 分段
    let minuteInterval = 5
    for ticket in stride(from: 0, to: 50, by: minuteInterval) {
        print(ticket)
    }
    for ticket in stride(from: 0, through: 50, by: minuteInterval) {
        print(ticket)
    }
    
  2. while

    var count = 0
    repeat {
        print(count)
        count += 1
    } while count < 5
    
  3. switch

    // swift中 switch語句必須包含全部內容,並且沒有隱式貫穿
    // swift case中可以匹配多個值,寫成多行,只需用逗號隔開  case "a","A":
    // swift中case還可以進行區間匹配 case 1..<5:
    // swift中case還可以進行元組匹配
    // swift中case還可以進行值繫結 case (let x, 0):
    // swift中case還可以進行where檢查  case let(x,y) where x == y:
    
  4. 控制轉移

    // continue
    // break
    // fallthrough 可以實現oc switvh中的隱式貫穿
    // return
    // throw
    
    // 語句標籤
    
  5. guard

    guard true else {
        print("when false do something")
    }
    
    print("when true do something")
    
  6. 檢查API可用性

    if #available(iOS 10, macOS10.12, *) {
        
    } else {
        
    }