私は現在、(空でない) Swift 辞書に特定のキーが含まれているかどうかを判断し、同じ辞書から 1 つの (任意の) 値を取得するために、次の (不格好な) コードを使用しています。
これを 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
}
ベストアンサー1
これを行うには特別なコードは必要ありません。これは辞書が既に行っていることだからです。フェッチすると、返される Optional にはキーが含まれていないため(値が含まれています)、辞書にキーが含まれているかどうかがdict[key]
わかります。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
}