-
创建数组,数组简写
[Int]
var someInts = [Int]() var threeDoubles = Array(repeating: 0.0, count: 3) var sixDoubles = threeDoubles + anotherThreeDoubles var shoppingList:[String] = ["Eggs","Milk"] var shorthandShoppingList = ["Eggs","Milk"]
-
使用“append”在数组末尾添加元素,或者“+=”符号
someInts.append(3) shoppingList += ["Baking Powder"]
-
使用“repeat”创建素有元素值均一样的默认数组
var threeDoubles = Array(repeating: 0.0, count: 3)
-
使用“...”访问区间元素,并且可在数目不同时替换
shoppingList[4...6] = ["Bananas", "Apples"]
-
使用remove对数组进行移除操作,注意返回的是被移除元素而非数组
let apples = shoppingList.removeLast() //"Apples"
-
使用“enumerated()”及元组获取数组当前序号和对应值
for (index, value) in shoppingList.enumerated() { print("Item \(index + 1) : \(value)") //Item 5 : Bananas }
-
无需排序且值唯一不重复使用 Set
-
Set 并没有像 Array 和 Dictionary 那样的简写
-
放入 Set 中(或者作为字典中 Key)的类型必须为遵循 Hashable 协议的类型。String、Double、Int 等基本类型默认遵循该协议。用户手动创建的类型必须遵循该协议且实现 hashValue 的 get 方法才可以放入 Set 中(或者作为字典中 Key)
-
使用
.sorted()
来获取排序后的Set,实际上是根据 hashValue 排序。 -
区别于 Array,Set 有时需要显示指明变量类型为 Set
var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"]
-
Set 中可以有重复元素,不会造成错误,会自动过滤掉重复元素。
-
使用
contain
判断是否包含某元素,使用remove
移除指定元素,同时返回该元素(非移除后Set)if favoriteGenres.contains("Funk") { print("I get up on the good foot.") } else { print("It's too funky in here.") } // Prints "It's too funky in here." if let removedGenre = favoriteGenres.remove("Rock") { print("\(removedGenre)? I'm over it.") } else { print("I never much cared for that.") } // Prints "Rock? I'm over it."
-
两个Set之间的运算
使用a.intersection(b)获取a与b相交部分
使用a.symmetricDifference(b)获取a与b相交部分外的所有元素
使用a.union(b)获取全集
使用a.subtracting(b)获取a除去所包含b的部分使用a==b,判断a是否等于b,即a与b包含完全相同的元素
使用a.isSubset(of: b)判断a是否是b的子集
使用a.isSuperset(of: b)判断a是否是b的全集
使用a. isStrictSubset(of: b)判断a是否是b的子集,且a不等于b
使用isStrictSuperset(of: b)判断a是否是b的全集,且a不等于b
使用a.isDisjoint(of: b)判断a是否与b不相交 -
字典中的 key 必须遵循 Hashable 协议
-
字典类型的简写
<Key , Value>
或者[Key : Value]
均可var dictionaryA: Dictionary<String,String> var dictionaryB: [String:String]
-
创建字典
var namesOfIntegers = [Int: String]()
-
字典赋值
namesOfIntegers[16] = "sixteen"
-
使用updateValue(_:forKey:)方法上面赋值方法在赋值时作用相同,不同的是会返回一个原值的可选对象(原值存在返回原值,原值不存在返回nil)
-
根据特定 key 取出对应 value 的时候由于 key 可能会不存在,相应的 value 可能会为空,所以返回的是可选类型。
-
使用
= nil
删除字典中一对值,也可以使用removeValue(forKey:),后者会返回可选类型的原值,也就是说当这对值存在时会在删除的同时返回 value 的值,否则会返回空。 -
使用元组(key, value)遍历字典,也可以单独遍历字典的keys或者values。
-
使用数组表示字典keys和values
let airportCodes = [String](airports.keys) let airportValues = [String](airports.values)
-
字典keys无序,可以使用sort()排序。
网友评论