Swift 个人学习笔记 - 05: 集合类型(Array, Set, Dictionary)

本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考

以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。

在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。

本文地址:https://segmentfault.com/a/1190000008440175

Reference:

原版:The Swift Programming Language
中文版:Swift 3 编程语言 – 集合类型

集合类型涉及三种类,分别是 Array, Set, Dictionary,分别对应 NSArray, NSSet, NSDictionary,也就是数组、集合、关联数组。

《Swift 个人学习笔记 - 05: 集合类型(Array, Set, Dictionary)》

Array

创建空数组

    var someInts = [Int]()
    var anEmptyArray = []
    var arrayRepeated = Arrar(Repeating: 2.5, count 3)    // 创建一个 Float 类型数组,值重复三次
    var shoppingList : [String] = ["eggs", "milk"]
    var shoppingList = ["eggs", "milk"]

可以用加号连接两个数组,获得一个新数组。

常用方法和用法

    isEmpty()
    append(_:)
    +=
    count()
    someArray[4....6]       // 取子数组
    removeLast()            // 同时会返回被删除的对象
    insert(_: at:)

for-in

这里要用到 enumated 方法:

    for (index, value) in anArray.enumated() {
        print ("Item \(index + 1): \(value)")
    }

《Swift 个人学习笔记 - 05: 集合类型(Array, Set, Dictionary)》

Set(集合)

创建空 Set

    var aSet = Set<Characters>()    // 创建 Characters 类型的 Set
    var aSet:Set = ["S", "w", "i", "f", "t"]      // 注意必须指定是 Set 类型,否则 Swift 会默认为 Array 类型

常用方法

    count()
    isEmpty()
    insert(_:)
    remove(_:)
    removeAll()
    contains(_:)
    isSubset(of:)
    isSuperset(of:)
    isDisjoint(of:)      // 判断两者是否有交集

for-in

    for value in aSet {
        ...
    }

集合操作

  • 取交集:a.intersects(b)
  • 取毫无相交的集:a.excludeOr(b)
  • 取并集:a.union(b)
  • 取减集:a.substract(b)

《Swift 个人学习笔记 - 05: 集合类型(Array, Set, Dictionary)》

Dictionary

创建字典

    var aDict = [Int : String]()
    var aDict = [:]
    var aDict = ["one": 1,
                 "two": 2]        // 以 “key-value” 对创建 Dictionary

常用方法

    count()
    isEmpty()
    updateValue(_:forKey:)        // 同时返回被替代掉的对象
    aDict["SomeKey"]

另外,赋值 nil 可以删除指定的键值对

for-in

    for (theKey, theValue) in aDict {
        ...
    }

下一篇

Swift 个人学习笔记 – 06: 控制流

    原文作者:amc
    原文地址: https://segmentfault.com/a/1190000008440175
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞