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

确定Swift字典是否包含键并获取其任何值

隆飞宇
2023-03-14
问题内容

我当前正在使用以下(笨拙的)代码段来确定(非空的)Swift字典是否包含给定键,并从同一字典中获取一个(任何)值。

如何将其更优雅地放在Swift中?

// excerpt from method that determines if dict contains key
if let _ = dict[key] {
    return true
}
else {
    return false
}

// excerpt from method that obtains first value from dict
for (_, value) in dict {
    return value
}

问题答案:

您不需要 任何 特殊的代码即可执行此操作,因为这已是字典的功能。提取时,dict[key]知道
字典是否包含键,因为返回的Optional不nil包含(并且包含值)。

因此,如果您 只想 回答字典是否包含密钥的问题,请询问:

let keyExists = dict[key] != nil

如果您需要该值并且 知道 字典包含键,请说:

let val = dict[key]!

但是,如果像通常发生的那样,您不知道它包含密钥-您想获取它并使用它,但只有在它存在的情况下-才可以使用if let

if let val = dict[key] {
    // now val is not nil and the Optional has been unwrapped, so use it
}


 类似资料:
  • 问题内容: 我有一个Python字典,例如: 我想检查一个键是否在字典中。我很想知道以下两种情况中哪一种更为可取,为什么? 问题答案: if ‘name’ in mydict: 是首选的pythonic版本。不鼓励使用,并且在Python 3中已删除 此方法。

  • 问题内容: 我正在使用[UIImage:UIImage]类型的快速字典,并且正在尝试查找给定值的特定键。在Objective- C中,我可以使用allKeysForValue,但是Swift字典似乎没有这种方法。我应该使用什么? 问题答案: Swift 3:针对双射字典的特殊情况,性能更高 如果反向字典查找用例涵盖了在键和值之间具有一对一关系的双射字典,那么穷举收集操作的另一种方法是使用更快的短路

  • 问题内容: 我再次使用swift数组和NSArray仅提供的containsObject! 我将swift数组桥接到NSArray来执行以下操作: 它通常可以正常工作,但是只要我放一个String就可以了!在字符串类型的数组中,它崩溃。即使containsObject确实占用了AnyObject! 声明一个字符串!数组也无济于事 但是一样没有效果很好 那么我该如何显式包装东西?我真的不明白为什么我

  • 问题内容: 假设您有一个要测试的字符串,以确保在继续其他代码之前,该字符串包含整数。在Java中,您将使用什么来确定它是否为整数? 问题答案: 如果要确保它 只是 一个整数并将其转换为一个整数,则可以在中使用parseInt。但是,如果要检查字符串是否包含数字,则最好将String.matches与正则表达式配合使用:

  • 问题内容: 我正在尝试确定Pandas列中是否有一个具有特定值的条目。我试图用来做到这一点。我以为这是行得通的,除非当我向它提供一个我不知道的值时,它仍然返回。当我将一个子集添加到仅包含与缺少的ID匹配的条目的数据框时,显然其中没有条目。如何确定Pandas数据框中的列是否包含特定值,为什么我的当前方法不起作用?)。 问题答案: Series的值检查值是否在索引中: 一种选择是查看它是否具有唯一值

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