数组
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.考虑到工程实际情况,后端使用的语言可能不支持元组,需要转换为其他格式
所以说,元组适合应用于组合少量的多元的数据,与数组、字典结合使用可以产生强大威力。