我目前正在使用以下(笨拙的)代码来确定(非空)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(并且它包含值)。
dict[key]
nil
因此,如果您 只想 回答字典是否包含密钥的问题,请询问:
let keyExists = dict[key] != nil
如果您想要该值并且您 知道 字典包含该键,请说:
let val = dict[key]!
但是,如果像通常发生的那样,您不知道它包含密钥 - 您想要获取并使用它,但前提是它存在 - 然后使用类似的东西if let:
if let
if let val = dict[key] { // now val is not nil and the Optional has been unwrapped, so use it }