day2-复杂类型

93 阅读1分钟

数组

let stu1 = "张三"

let stu2 = "李四"

let stu3 = "王五"

let stu4 = "赵六"

let stus = [stu1,stu2,stu3,stu4]

通过索引读取数组元素

stus[0]

角标溢出无法读取

//Cannot find 'stu' in scope

//stu[4]
let ages:[Int] = [1,2,4,5]

创建一个空数组

var results = [Int]()

results.append(1)

print(results)

集合

集合和数组类似,但是有区别

  1. 元素不能重复

  2. 无顺序?这个无序该怎么理解呢?输出的时候发现和数组中的顺序是不一样的。

根据数组创建一个集合

let set1 = Set(stus)

重复项目会被移除掉

let colors = Set(["red","green","yellow","red"])

创建一个空集合

var words = Set<String>()

元组

创建


var englishname = (first:"taylor",last:"swift")

var chinesename = (first:"张",last:"三")

通过位置访问

englishname.0

通过名称访问

chinesename.first

修改元组内部的值

englishname.0 = "jack"
englishname.last = "ma"
print(englishname)

一个用处

元组用来返回请求数据还挺有用的。

var response = (msg:"请求成功",code:0,result:["red","yellow"])

字典

创建一个字典

let heights = [

    "张三":1.81,

    "李四":1.72

]

访问字典

heights["张三"]

明确声明字典类型

var weights:[String:Double] = [    "san":140.5,    "si":130]

当使用一个不存在的key去获取值,会获取一个nil

weights["san"]

weights["wu"]

可以设置一个默认值


weights["wu",default: 100.0]

数组,集合,字典可以统称为集合,因为把值集中在一处

创建一个空字典

var teams = [String:String]()

给空字典添加键值

teams["paul"] = "red"
print(teams)

使用类似的方法创建字典和数组

var scores = Dictionary<String,Int>()

var result2s = Array<Int>()