0
点赞
收藏
分享

微信扫一扫

新的 ChatGPT 提示工程技术:程序模拟

汤姆torn 2023-09-12 阅读 38

1 Dictionary 概念

  • 字典储存无序的互相关联的同一类型的键和同一类型的值的集合。
  • 字典类型的全写方式 Dictionary<Key, Value>,简写方式 [Key: Value],建议使用简写方式。
  • 字典的 key 必须是可哈希的。

Dictionary创建

2.1 初始器创建方式

var dictionary = Dictionary<String,Int>()

2.2 简写创建方式

var dictionary = [String,Int]()

2.3 字面量创建方式

var dictionary: Dictionary<String,Int> = [:]

2.4 Dictionary的方法

  • 可以使用 count 只读属性来找出 Dictionary 拥有多少元素。
  • 使用布尔量 isEmpty 属性检查字典是否为空。

3 Dictionary的遍历

3.1 For-In 循环

  • 可以通过访问字典的 keys 和 values 属性来取回可遍历的字典的键或值的集合。
  • Swift 的 Dictionary 类型是无序的。要以特定的顺序遍历字典的键或值,使用键或值的

    sorted() 方法。

let dictionary = ["zhangsan": 7,"lisi": 8,"wangwu": 9]

for(key,value) in dictionary{
    print("name = \(key) , age = \(value)")
}

/**
 name = zhangsan , age = 7
 name = lisi , age = 8
 name = wangwu , age = 9
 */


let dictionary = ["zhangsan": 7,"lisi": 8,"wangwu": 9]

for key in dictionary.keys.sorted(){
    print("name = \(key),age = \(dictionary[key])")
}

/**
 name = lisi,age = Optional(8)
 name = wangwu,age = Optional(9)
 name = zhangsan,age = Optional(7)
 */

Dictionary的常用操作

4.1 添加或更新元素

  • 使用下标添加或更新元素。
  • 使用 updateValue(_:forKey:) 方法添加或更新元素,返回一个字典值类型的可选项值。

4.2移除元素

  • 使用下标脚本语法给一个键赋值 nil 来从字典当中移除一个键值对。
  • 使用 removeValue(forKey:)来从字典里移除键值对。这个方法移除键值对如果他们存在的

    话,并且返回移除的值,如果值不存在则返回 nil 。

4.3 合并两个字典

  • merge(_:uniquingKeysWith:)

var dictionary = ["zhangsan": 7,"lisi": 8]
dictionary.merge(["zhangsan":17,"wangwu": 19]) {(current, _) in current}
print(dictionary)

dictionary.merge(["zhagnsan": 27,"niuliu": 30]) {(current, _) in current}
print(dictionary)

/**
 ["lisi": 8, "zhangsan": 7, "wangwu": 19]
 ["niuliu": 30, "zhagnsan": 27, "wangwu": 19, "lisi": 8, "zhangsan": 7]
 */

4.4 fifirstIndex

  • 虽然字典是无序的,但是每个kv对在扩容之前的位置是稳定的。如果你需要保持顺序的kv对 可以使用 KeyValuePairs。

举报

相关推荐

0 条评论