Swift学习笔记系列——(3)集合类型
Tags: Swift 学习笔记 发布时间:2015-07-06 Swift学习笔记系列——(3)集合类型三种集合类型Array、Set和Dictionary 共同点键(如果有的化)和值的类型是确定的 不同点Array有序,Set无序,Dictionary无序 Array声明正规写法: 创建空数组
用默认值创建数组[类型](count:长度,repeatedValue:默认初始值) 用两个数组的内容创建新数组使用“+”操作符 用数组字面值创建数组[值1,值2……] 因为有类型推测,用字面值赋值的数组可以不声明类型 访问和修改数组通过数组的方法、属性和下标 count属性isEmpty属性append(_:)方法在数组末尾追加单个内容 +=在数组末尾追加另外一个数组 索引索引从0开始 insert(_:atIndex)在指定位置插入一个内容 removeAtIndex(_:)在指定位置删除一个内容 removeLast()删除最后一个内容 遍历数组for-in语句for item in shoppingList { // doSomething } enumerate()方法enumerate()方法返回包含数组索引和对应内容的元组 for (index,value) in shoppingList.enumerate() { print("Item (index+1):(value)") } Set无序存储同类型的不同内容 Set存储的类型的哈希值Set中存储的值的类型需要遵循hashable协议,有哈希值 Set声明语法Set<T> 创建空SetSet<T>() 用数组字面值初始化Set单独一个字面值的情况不能省略类型声明 访问和修改Setcount属性得到Set长度 isEmpty属性得到Set是否为空 insert(_:)方法插入一个内容 remove(_:)方法移除一个内容 removeAll()方法移除所有内容 contains(_:)方法检查是否包含特定内容 遍历Setfor-in语句sort()方法对Set进行排序操作Setintersect(_:)方法取两个Set交集 exclusiveOr(_:)方法取两个Set交集之外的合集 union(_:)方法取两个Set合集 subtract(_:)方法取Set A中不包括在Set B中的部分 Set的关系和相等==两个Set包含相同的东西 isSubsetOf(_:)方法判断一个Set是不是完全被另一个Set包含 isSupersetOf(_:)方法判断一个Set是不是完全包含另外一个Set isStrictSubsetOf(_:)方法判断一个Set是不是完全被另一个Set包含,相等除外 isStrictSupersetOf(_:)方法判断一个Set是不是完全包含另外一个Set,相等除外 isDisjointWith(_:)方法判断两个Set是否没有任何交集 Dictionary无序 声明简短写法[Key: Value] 全写Dictionary<Key,Value> 创建空字典var namesOfIntegers = [Int: String]() // namesOfIntegers is an empty [Int: String] dictionary namesOfIntegers =[:] 用字典字面值创建字典[key 1: value 1,key 2: value 2,key 3: value 3] 访问和修改一个字典count属性isEmpty属性下标修改和添加dictornary[keyname]=value 用下标删除dictornary[keyname]=nil updateValue(_:forKey:)方法等价于下标操作,返回一个可选值。 removeValueForKey(_:)方法等价于下标赋值nil操作,返回一个可选值。 遍历字典字典的每一项是一个元组for (airportCode,airportName) in airports { print("(airportCode): (airportName)") } 利用keys和values属性for airportCode in airports.keys { print("Airport code: (airportCode)") } // Airport code: YYZ // Airport code: LHR for airportName in airports.values { print("Airport name: (airportName)") } // Airport name: Toronto Pearson // Airport name: London Heathrow 本章思维导图(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |