나는 사전에 목록을 저장하고 있습니다. 이 목록은 업데이트해야합니다. 그러나 항목을 검색 할 때 [] 연산자가 필요합니다. 결과를 변수에 저장하면 사본이 사용됩니다. 목록 자체를 변경하려면 다음을 사용하십시오.스위프트 3 : 사전에서 항목 변경
item = dicMyList[key]
if item != nil {
// add it to existing list
dicMyList[key]!.list.append(filename)
// item?.list.append(filename)
}
위의 주석 처리되지 않은 코드가 필요하지만 사전에 액세스하여 다시 검색합니다. 다시 검색하지 않고 어떻게 결과를 저장할 수 있습니까? (주석 달린 줄처럼) 코드 속도를 높이고 싶습니다.
[this] (http://stackoverflow.com/questions/29189955/how-to-mutate-an-array-in-a-dictionary-wift-objects) 귀하의 사례는 무엇입니까? –
"* *이 액세스 및 사전 *에서 다시 검색"이란 무엇을 의미합니까? 사전의 특성상 키의 값을 찾기 위해 검색 할 필요가 없다는 것을 의미합니다. 조회는 O (1) 시간에 수행됩니다. – Hamish
네, 그렇습니다. :-) "이것은 사전에 다시 액세스하고 검색합니다"는 의미로 dicMyList [key] 객체가 이미 사용 가능하다는 것을 의미합니다. 그리고 그것이 O (1)이더라도, 필요하지 않은 추가적인 계산이 필요합니다. 예전처럼, C에서 struct에 대한 포인터를 얻었을 때와 마찬가지로 직접 사용할 수 있습니다. * p = newValue – Peter71