小编典典

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

all

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

阅读 57

收藏
2022-04-14

共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
}
2022-04-14