Swift 中的 Dictionary.Keys 转换为数组

4,495 阅读1分钟

Swift 中,如何获取一个 Dictionary 的所有 keys 的数组呢?

第一感觉就是使用 keys 的属性,但是打印下来并不是:

var dic = [String : [String]]()
dic["key"] = ["value"]
print(type(of: dic.keys))
print(dic.keys)

// 输出
Swift.Dictionary<Swift.String, Swift.Array<Swift.String>>.Keys
Dictionary.Keys(["key"])

可以看出 Dictionary 的 keys 方法返回的是 Dictionary.Keys 类型的值。Dictionary.Keys 是一种结构体,用于描述 dictionary 的 keys。

A view of a dictionary’s keys.

可以通过下面的方法将 Dictionary.Keys 转化为数组:

let keysArray = Array(dict.keys) // for Dictionary

NSDictionary 获取 key 数组的方法为: let keysArray = dict.allKeys