0
코드 아래에 구현되었습니다. 내 사전에 "key1"키가 없으면 value1을 빈 사전 [:]으로 초기화해야하지만 코드는 실행되지만 결코 오지 않습니다 if-let 블록에 넣습니다.신속한 3.0 nil 병합이 사용 된 경우 예상 결과를 얻지 못했습니다.
이 경우 제가
if let value1 = ((dataDict["key1"] as? Dictionary<String,Any>?) ?? [:]){
print(value1)
}
또는 더 짧게하자. 'let value1 = dataDict [ "key1"]? [String : Any] ?? [:]' – Hamish
@vadian, 왜 우리는이 "dataDict ["key1 "]"이 무효가 될 가능성이 있다는 것을 알고 있다면 구현과 마찬가지로 if-let과 nil 병합을 사용할 수 없는지 설명해 주시겠습니까? if-let 문 자체에서 공백 사전을 지정하고 싶습니다. 그리고 거기에 작동하지 않는다. – Nijar
실제로 nil coalescing operator는 if-let을한다. 키'key1'이 존재하지 않거나 값이'[String : Any]가 아닌 경우 빈 (비 선택적) 사전은 변수에 할당되고 그렇지 않으면 랩핑되지 않은 (!) 값이 할당됩니다. – vadian