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