Learning iOS D11 2017-11-3(数组,元组,字典)

数组

var demo = ["Cho", [88, 90, 80, 79]]

优点

1.数据存储顺序固定,增删改也通过index来进行

2.集成了遍历方法,适合对大量同类数据的处理

3.不需要定义key,写法相对简单

缺点

1.访问特定数据时,查找效率不高

2.处理特定数据时,需要牢记数据的index,可读性不好,容易产生错位处理

字典

var demo = [

["name": "Cho", "score": [88, 90, 80, 79]],

["name": "Wong", "score":[85, 95, 79, 77]]

]

优点:

1..通过key值进行索引,查找效率高

2.通过key值进行数据标注,可读性高,易于区分多种数据

3.key值唯一,增删改可以保证数据唯一性

缺点:

1.一个value必须对应一个key,尽管有时不需要key

2.key值顺序不定,字典对key值表进行了hash,所以不方便存储对顺序敏感的数据

元组

var demo: (String, Array) = ( "Cho", [88, 90, 80, 79])

var demo: (String, Array) = (name: "Cho", score:  [88, 90, 80, 79])

demo.0 = demo.name

demo.1 = demo.score

字典的存储顺序不确定,而元组是固定的

优点

1.元组可以同时存储多种类型元素,且元素类型固定,以保证数据安全,除非你定义数据类型为Any。编译器会对赋值参数类型进行检查

2.元组的元素个数固定,不允许增加、删除,编译器会严格校验赋值参数个数

3.无需定义key,但是必要时可以为数据命名,方便数据访问

4.适合同时遍历多元数据,例如官方文档的例子

for (index, value) in shoppingList.enumerate()

缺点

1.不适合存储大量数据,因为元组不支持append、remove等方法

2.考虑到工程实际情况,后端使用的语言可能不支持元组,需要转换为其他格式

所以说,元组适合应用于组合少量的多元的数据,与数组、字典结合使用可以产生强大威力。

参考链接

你可能感兴趣的:(Learning iOS D11 2017-11-3(数组,元组,字典))