수색…


비고

이 주제의 일부 예제는 사전 순서가 보장되지 않았기 때문에 다른 순서로 사용될 수 있습니다.

선언 사전

사전은 정렬되지 않은 키와 값의 모음입니다. 값은 고유 키와 관련이 있으며 동일한 유형이어야합니다.

사전을 초기화 할 때 전체 구문은 다음과 같습니다.

var books : Dictionary<Int, String> = Dictionary<Int, String>()

보다 간결한 초기화 방법은 다음과 같습니다.

var books = [Int: String]()
// or
var books: [Int: String] = [:]

쉼표로 구분 된 목록에 키와 값을 지정하여 사전을 선언하십시오. 유형은 키와 값의 유형에서 추론 할 수 있습니다.

var books: [Int: String] = [1: "Book 1", 2: "Book 2"]
//books = [2: "Book 2", 1: "Book 1"] 
var otherBooks = [3: "Book 3", 4: "Book 4"]
//otherBooks = [3: "Book 3", 4: "Book 4"]

사전 수정

사전에 키와 값 추가

var books = [Int: String]()
//books = [:]
books[5] = "Book 5"
//books = [5: "Book 5"]
books.updateValue("Book 6", forKey: 5)
//[5: "Book 6"]

updateValue는 원래 값이 있거나 존재하지 않으면 원래 값을 반환합니다.

let previousValue = books.updateValue("Book 7", forKey: 5)
//books = [5: "Book 7"]
//previousValue = "Book 6"

비슷한 구문으로 값과 키를 제거하십시오.

books[5] = nil
//books [:]
books[6] = "Deleting from Dictionaries"
//books = [6: "Deleting from Dictionaries"]
let removedBook = books.removeValueForKey(6)
//books = [:]
//removedValue = "Deleting from Dictionaries"

값 액세스

Dictionary 의 값은 해당 키를 사용하여 액세스 할 수 있습니다.

var books: [Int: String] = [1: "Book 1", 2: "Book 2"]
let bookName = books[1]
//bookName = "Book 1"

사전의 valuesvalues 속성을 사용하여 반복 할 수 있습니다.

for book in books.values {
    print("Book Title: \(book)")
}
//output: Book Title: Book 2
//output: Book Title: Book 1

마찬가지로 사전의 키는 해당 keys 속성을 사용하여 반복 할 수 있습니다.

for bookNumbers in books.keys {
    print("Book number: \(bookNumber)")
}
// outputs:
// Book number: 1
// Book number: 2

서로에 해당하는 모든 keyvalue 쌍을 얻으려면 (사전이므로 올바른 순서가되지 않습니다)

for (book,bookNumbers)in books{
print("\(book)  \(bookNumbers)")
}
// outputs:
// 2  Book 2
// 1  Book 1

DictionaryArray 과는 달리 본질적으로 순서가 없습니다. 즉 반복 중에는 순서에 대한 보장이 없습니다.

여러 수준의 사전에 액세스하려면 반복되는 첨자 구문을 사용하십시오.

// Create a multilevel dictionary.
var myDictionary: [String:[Int:String]]! = ["Toys":[1:"Car",2:"Truck"],"Interests":[1:"Science",2:"Math"]]

print(myDictionary["Toys"][2]) // Outputs "Truck"
print(myDictionary["Interests"][1]) // Outputs "Science"

키를 사용하여 사전의 값 변경

var dict = ["name": "John", "surname": "Doe"]
// Set the element with key: 'name' to 'Jane'
dict["name"] = "Jane"
print(dict)

Dictionary에서 모든 키 가져 오기

let myAllKeys = ["name" : "Kirit" , "surname" : "Modi"]
let allKeys = Array(myAllKeys.keys)
print(allKeys)

두 개의 사전 병합

extension Dictionary {
    func merge(dict: Dictionary<Key,Value>) -> Dictionary<Key,Value> {
        var mutableCopy = self
        for (key, value) in dict {
            // If both dictionaries have a value for same key, the value of the other dictionary is used.
            mutableCopy[key] = value
        }
        return mutableCopy
    }
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow