Swift辞書にキーが含まれているかどうかを確認し、その値を取得する 質問する

Swift辞書にキーが含まれているかどうかを確認し、その値を取得する 質問する

私は現在、(空でない) 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
}

おすすめ記事