Swift 语言提供了数组和字典两种集合类型来存储集合数据。数组用来按顺序存储相同类型的数据。字典则是以无序的方式来存储键值对(key,value)。数组和字典都是强类型的,也就意味着,数组和字典在声明时必须指明类型。
本篇博客我们来分别讨论swift中的数组和字典
数组
数组就是以一个从头到尾的顺序存储相同类型值的容器。相同的值可以在一个数组中出现多次。下面来创建并初始化两个数组:
创建数组
- var intArray : [Int] = [1,2,3]
- var strArray : [String] = ["hello","world"]
注意:我现在编写的swift代码的版本是swift2.1,数组的类型是[Type],而不是Type[]
由于swift可以进行类型推测,所以我在创建这两个数组时可以不标注类型,如下
- var intArray = [1,3]
- var strArray= ["hello","world"]
可以这样来创建一个空数组
- var emptyArray = [Int]()
访问和修改数组
我们可以通过访问数组下标来获取数组中某个元素的值,也可以通过数组的其它属性和方法来修改数组。
- //获取数组中的元素个数
- var itemCount = intArray.count
- //判断数组是否为空
- var isEmpty = intArray.isEmpty
- //通过下标来访问数组的某个元素
- var item = intArray[0]
- //向数组的最后面加入元素
- intArray.append(4)
- //改变某个位置上元素的值
- intArray[0] = 0
- //移除某个位置的元素
- var removedItem = intArray.removeAtIndex(1)
- //判断数组是否包含某个值
- intArray.contains(2)
- //向数组的某个位置插入一个值
- intArray.insert(2,atIndex: 1)
- //再次判断
- intArray.contains(2)
如果你认为swift关于数组的操作就这么多,那你就错了,下面来两个更强大的功能:数组的拼接和区域内赋值
- var anotherIntArray = [4,5,6]
- intArray += anotherIntArray
-
- strArray += ["hello","swift"]
数组的拼接是把第二个数组全部接到第一个数组的最后面
- intArray[2...4] = [1,2]
- intArray[2...4] = []
这个区域内赋值(这个名字是我瞎编的,哈哈),就是把数组的下标在2到4之间的元素替换为等号后面给定的数组,任意长度哦,(可以为空数组哦,瞬间变成批量移除哦)
数组的遍历
我们可以使用传统的for循环语法来遍历数组,也可以使用for-in的语法来遍历数组
- for var i = 0 ;i < intArray.count ; i++ { print(intArray[i]) }
-
- for item in intArray{ print(item) }
常量数组
如果把一个数组声明为常量,则:
字典
字典是一组特定类型的键值对。下面来创建一个字典
- var dic = [1:"one",2:"two",3:"three"]
- if let value = dic[2]{
- print(value)
- }
- dic[4]="foure"
- print(dic[4])
输出结果为
- two
- Optional("foure")
我通过字面值来创建了一个Dictionary
字典的遍历
用for…in的方式来遍历字典
- for (number,str) in dic{
- print(number)
- print(str)
- }
字典中的每个项都通过元组的形式返回。
也可以单独遍历所有的key或所有的value
- for key in dic.keys{
- print(key)
- }
-
- for v in dic.values{
- print(v)
- }
遍历字典时,所有的值都是非可选的。