一尘不染

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

swift

我当前正在使用以下(笨拙的)代码段来确定(非空的)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
}

阅读 961

收藏
2020-07-07

共1个答案

一尘不染

您不需要 任何 特殊的代码即可执行此操作,因为这已是字典的功能。提取时,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
}
2020-07-07