08.Swift 字典

@(〓〓 iOS-Swift语法)[Swift 语法]


目录

  • 8.字典
    • 字典的介绍
    • 字典的初始化
    • 字典的基本操作
    • 字典的遍历
    • 字典的合并

字典的介绍

  • 字典允许按照某个键(key)来访问元素
  • 字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.
  • 键(key)集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的
  • Swift中的字典
    • Swift字典类型是Dictionary,也是一个泛型集合.

字典的初始化

  • Swift中的可变和不可变字典
    • 使用let修饰的数组是不可变字典
    • 使用var修饰的数组是可变字典
// ----------------------------------------------------------------------------
// 1.字典的定义

// 1.1 不可变字典: 使用let修饰
// 如果[]存放的是元素,表示是数组
// 如果[]存放的是键值对,表示字典
let dict = ["name" : "liwx", "age" : 18, "height" : 1.88]

// 1.2 可变字典: 使用var修饰,存放的是键值对
var dictM = [String : AnyObject]()
  • 在声明一个Dictionary类型的时候可以使用下面的语句之一
// ???有疑问
var dict1: Dictionary
var dict2: [Int: String]
  • 声明的字典需要进行初始化才能使用,字典类型往往是在声明的同时进行初始化的.
// 定时字典的同时,进行初始化
var dict = ["name" : "liwx", "age" : 18, "height" : 1.88]

// swift中任意对象,通常不使用NSObject,使用AnyObject
var dict : Dictionary
dict = ["name" : "liwx", "age" : 18, "height" : 1.88]

字典的基本操作

  • 字典的增删改查
// ----------------------------------------------------------------------------
// 2. 可变字典的基本操作

// 2.1 添加元素
// dict["weight"] = 70  // 错误写法: dict是不可变字典
dictM["weight"] = 70
dictM["name"] = "lll"   // 如果key已经存在,则修改key对应的value
dictM["age"] = 19

// 2.2 移除元素
dictM.removeValueForKey("age")


// 2.3 修改元素
// 注意:在修改字典中元素时,如果有找到对应的key,修改对应的value,如果没有找到的key,则添加对应的键值对
dictM["weight"] = 60
dictM["height"] = 1.89
dictM

// 2.4 使用key查询value
let height = dictM["height"]

字典的遍历

  • 字典的遍历
// ----------------------------------------------------------------------------
// 3.遍历字典

// 3.1 遍历字典中所有的key
for key in dictM.keys {
    print(key)
}

// 3.2 遍历字典中所有的value
for value in dictM.values {
    print(value)
}

// 3.3 遍历字典中所有的键值对 key/value
for (key,value) in dictM {
    print(key, value)
}

字典的合并

  • 字典的合并
    • 注意: 相同类型的字典也是不可以使用+号合并

// ----------------------------------------------------------------------------
// 4.合并字典
// 注意: 相同类型的字典也是不可以相加合并
var dict1 = ["name" : "liwx", "age" : 18]
let dict2 = ["weight" : 70, "phoneNum" : "+86 110"]
// let resultDict dict1 + dict2 错误写法,字典不能用+号合并

for (key, value) in dict2 {
    dict1[key] = value
}

你可能感兴趣的:(08.Swift 字典)