本篇介绍Swift的基础知识:数组(Array),集合(Set)和字符(Dictionary)。
Title: Swift基础入门(3):数组,集合和字典
Author: Yunyao Zhang(张云尧)
E-mail: aidaizyy@gmail.com
Last Modified: 2015-07-16
数组
构造
|
|
数组的元素只能有一种数据类型。
数量
- Array.count:属性
count表示数组Array的元素个数。 - Array.isEmpty:属性
isEmpty表示数组Array的元素是否为0个,结果为true或false。
访问
- Array[i]:通过下标
[i]访问数组Array的第i位,可修改。
遍历
|
|
添加
- Array.append(Item):将元素
Item添加到数组Array的尾部。 - Array.imsert(Item, atIndex: i):将元素
Item添加到数组Array的第i位。 - Array += [Item1, Item2]:将元素
Item1和Item2添加到数组Array的尾部。
删除
- Array.removeAtIndex(i):删除数组
Array的第i位。 - Array.removeLast():删除数组
Array的最后一位。
替换
- Array[m…n] = [Item1, Item2]:用元素
Item1和Item2替换数组Array的第m位到第n位。这种方法不能用于添加新元素。
集合
集合中的元素没有确定顺序,且每个元素只出现一次。
构造
|
|
集合的元素只能有一种数据类型。
数量
- Set.count:属性
count表示集合Set的元素个数。 - Set.isEmpty:属性
isEmpty表示集合Set的元素是否为0个,结果为true或false。
遍历
|
|
因为Set中没有确定顺序,可以通过sorted(Set)函数返回一个排序的集合。
添加
- Set.imsert(Item):将元素
Item添加到集合Set中。
删除
- Set.remove(Item):删除集合
Set中的元素Item,成功则返回Item,如果集合中不包含Item则返回nil。 - Set.removeAll():删除集合
Set中的所有元素
包含
- Set.contains(Item):检查集合
Set是否包含元素Item,返回true或false。
比较
|
|
- ==:判断两个集合是否相等
- Set1.isSubsetOf(Set2):判断
Set1是否是Set2的子集 - Set1.isSupersetOf(Set2):判断
Set1是否是Set2的父集 - Set1.isStrictSubsetOf(Set2),Set1.isStrictSupersetOf(Set2):和上面方法相似,不过两个集合不能相等。
- Set1.isDisjoinWith(Set2):判断
Set1和Set2是否完成没有一个相同元素
上述方法都返回true或false。
操作
|
|
- Set1.intersects(Set2):返回
Set1和Set2的交集,即两个集合中都有的元素 - Set1.union(Set2):返回
Set1和Set2的并集,即两个集合中的所有元素 - Set1.subtract(Set2):返回
Set1和Set2的差集,即Set1中有的且Set2中没有的元素 - Set1.exclusiverOr(Set2):返回并集减去并集的集合,即
Set1中独有的和Set2中独有的元素,也就是所有元素减去两个集合中都有的元素。
哈希值
Swift中的所有基本类型默认都是可哈希的,通过a.hashValue求得哈希值。哈希值相等可以判断对象相同,如a == b即a.hashValue == b.hashValue。
字典
字典中每个值(Value)都关联唯一的建(key)。
构造
在构造过程中,键值对默认用[key 1: value 1, key 2: value 2, key 3: value 3]的形式。
数量
- Dictionary.count:属性
count表示字典Dictionary的元素个数。 - Dictionary.isEmpty:属性
isEmpty表示字典Dictionary的元素是否为0个,结果为true或false。
访问
- Dictionary[key]:通过下标
[key]访问字典Dictionary的键key对应的值,可修改。
遍历
|
|
for-in可便利字典,可便利键值对(key, value),也可以通过属性keys或values只便利键值其中一项。
字典的属性keys和values返回数组。
添加
- Dictionary[key] = value:更新字典
Dictionary中键key对应的值,如果不存在,则将键值对添加到字典 Dictionary中。 - Dicitonary.updateValue(value, forkey: key):更新字典
Dictionary中键key对应的值,如果不存在,则将键值对添加到字典 Dictionary。
注意:该方法返回原值,即执行updateValue方法之前键key对应的值,如果不存在,则返回nil。
删除
- Dictionary[key] = nil:删除字典
Dictionary中键key对应的值。 - Dictionary.removeValueForKey(key):删除字典
Dictionary中键key对应的值,返回删除的值,如果不存在,则返回nil。
添加操作和删除操作返回值有可能为nil,都是可选类型,使用时需要进行判断是否有值。
转载请注明原作者和出处。
如果觉得这篇文章对您有帮助或启发,请随意打赏~
![]()
![]()
