我目前使用以下(笨拙)段代码来确定是否一个(非空)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
}