Swift4.0新特性(下)

Swift的180個(gè)介紹

  • 一、新增一個(gè)swapAt方法

  • for example(可以很方便的互換兩個(gè)元素)

var numbers = [1,2,3,4,5,6]
print(numbers)  // [1,2,3,4,5,6]
numbers.swapAt(2, 5)
print(numbers)  // [1, 2, 6, 4, 5, 3]
swap(&numbers[0], &numbers[1])
print(numbers)  // [2, 1, 6, 4, 5, 3]
打印效果.png

  • 二、SE-0148使用泛型下標(biāo)操作符

  • 正常情況下

struct JSON {
      private var data: [String: Any]
      init(data: [String: Any]) {
          self.data = data
      }
      subscript(key: String) -> Any? {
          return data[key]
      }
}
let json = JSON(data: [
        "name": "MG明明",
        "age": 43
    ])
let name: String? = json["name"] as? String  // "MG明明"
let age: Int? = json["age"] as? Int          // 43
  • 修改泛型

struct JSON {
      private var data: [String: Any]
      init(data: [String: Any]) {
          self.data = data
      }
      subscript <T>(key: String) -> T? {
          return data[key] as? T
      }
}
let json = JSON(data: [
        "name": "MG明明",
        "age": 43
    ])
let name: String? = json["name"]   // "MG明明"
let age: Int? = json["age"]        // 43

  • 三、#SE-0156 Subtype existential
protocol P {}
struct S : P {}
class C : P {}
class D { }
let t: AnyObject & P = S() // Compiler error: S is not of class type
let u: AnyObject & P = C() // Compiles successfully
let v: P & AnyObject = C() // Compiles successfully
let w: P & AnyObject = D() // Compiler error: class D does not conform to protocol P
protocol P {}
class C {}
class D : C { }
class E : C { }
class F : D, P { }
let t: C & D & P = F() // Okay: F is a subclass of D and conforms to P
let u: D & P = t       // Okay: D & P is equivalent to C & D & P
let v: C & D & P = u   // Okay: C & D & P is equivalent to D & P
let w: D & E & P       // Compiler error: D is not a subclass of E or vice-versa


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Swift 4是蘋果計(jì)劃于2017年秋季推出的最新版本,其主要重點(diǎn)是提供與Swift 3代碼的源兼容性,并努力實(shí)現(xiàn)...
    Lewis海閱讀 8,585評論 7 18
  • Swift 4是蘋果最新推出的一次語言升級,計(jì)劃在2017年秋發(fā)布測試版。它的主要目標(biāo)是提供與Swift 3的源代...
    山天大畜閱讀 2,838評論 0 2
  • 本篇文章翻譯自:What’s New in Swift 3?原作者:Ben Morrow on June 15, ...
    matrix_lab閱讀 1,713評論 4 9
  • 最新在寫swift的時(shí)候感覺不怎么順手,于是把新特性看了一遍,順便做一下筆記,加深一下記憶。 1、語法改進(jìn) ext...
    傍觀者閱讀 545評論 0 1
  • #1.添加Codable協(xié)議,方便自定義數(shù)據(jù)類型序列化#2.添加定義多行字符串語法#3.改進(jìn)key-value c...
    愛抽煙的芭比閱讀 32,647評論 8 38