当前位置: 首页 > 面试题库 >

Swift字典获取价值的关键

陈志
2023-03-14
问题内容

我正在使用[UIImage:UIImage]类型的快速字典,并且正在尝试查找给定值的特定键。在Objective-
C中,我可以使用allKeysForValue,但是Swift字典似乎没有这种方法。我应该使用什么?


问题答案:

Swift 3:针对双射字典的特殊情况,性能更高

如果反向字典查找用例涵盖了在键和值之间具有一对一关系的双射字典,那么穷举收集filter操作的另一种方法是使用更快的短路方法来找到 某个
键(如果存在)。

extension Dictionary where Value: Equatable {
    func someKey(forValue val: Value) -> Key? {
        return first(where: { $1 == val })?.key
    }
}

用法示例:

let dict: [Int: String] = [1: "one", 2: "two", 4: "four"]

if let key = dict.someKey(forValue: "two") { 
    print(key)
} // 2


 类似资料:
  • 问题内容: 我有一本字典,其中包含用枚举值散列的对象: 我希望能够提取此字典包含的所有颜色(值)的数组。我以为我可以使用该属性,就像遍历字典值()一样,但这会返回错误: 似乎该方法返回了一个更抽象的集合类型,而不是返回值的an 。有没有一种方法可以获取包含字典值的而不循环提取它们的值? 问题答案: 从Swift 2.0开始,的属性现在返回而不是。该类型知道如何使用此抽象集合类型进行初始化: Swi

  • 问题内容: 我有一本Swift字典。我想获得钥匙的价值。密钥方法的对象对我不起作用。如何获得字典键的值? 这是我的字典: 问题答案: 使用下标访问字典键的值。这将返回一个可选: 要么 您还可以枚举所有键和值: 或枚举所有值:

  • 问题内容: 我习惯于Python的defaultdict的一种模式是字典,如果未显式设置给定键的值,则该字典将返回默认值。尝试在Swift中做到这一点有点冗长。 我意识到我可以创建一个做到这一点的类,但是随后必须通过属性访问实际的Dictionary才能使用其他任何普通的Dictionary方法 有更好的模式吗? 问题答案: 使用Swift 2,您可以实现类似于python版本的扩展名: 后面的闭

  • json响应:“result”:{ 代码:使用这段代码,我会得到上面这样的响应,意味着所有数组都来了...但在这里我需要如何获得它…如果我运行循环得到错误..请帮忙 如何从上面的字典数组中获取值

  • 问题内容: 这个问题已经在这里有了答案 : 获取字典中具有最大值的键? (25个答案) 4年前关闭。 我正在尝试获取dict键,其值是所有dict值的最大值。 我发现了两种方法,都不够优雅。 有没有更好的方法? 问题答案: 使用参数可以: 演示: 该参数接受一个函数,对于可迭代的每个条目,它将找到该函数为其返回最大值的那个条目。

  • 问题内容: 我当前正在使用以下(笨拙的)代码段来确定(非空的)Swift字典是否包含给定键,并从同一字典中获取一个(任何)值。 如何将其更优雅地放在Swift中? 问题答案: 您不需要 任何 特殊的代码即可执行此操作,因为这已是字典的功能。提取时,您 知道 字典是否包含键,因为返回的Optional不包含(并且包含值)。 因此,如果您 只想 回答字典是否包含密钥的问题,请询问: 如果您需要该值并且