스위프트 사전
Swift 사전은 동일한 유형의 정렬되지 않은 데이터 모음을 저장하는 데 사용됩니다. Swift 사전은 요소 유형을 강제로 감지하고 유형이 다른 경우 오류를 보고합니다.
Swift 사전의 각 값은 고유 키와 연결되어 있으며, 키는 사전에 있는 값 데이터의 식별자 역할을 합니다.
배열의 데이터 항목과 달리 사전의 데이터 항목에는 특정 순서가 없습니다. 식별자(키)를 통해 데이터에 액세스해야 할 때 사전을 사용합니다. 이 방법은 실제 세계에서 단어 의미를 찾기 위해 사전을 사용하는 방식과 거의 동일합니다.
Swift 사전 키에는 유형 제한이 없으며 정수 또는 문자열일 수 있지만 고유해야 합니다.
사전을 생성하여 변수에 할당하면 생성된 사전을 수정할 수 있습니다. 이는 사전이 생성된 후 사전의 항목을 추가, 삭제 또는 수정하여 변경할 수 있음을 의미합니다. 사전을 상수에 할당하면 사전을 수정할 수 없으며, 사전의 크기나 내용도 수정할 수 없습니다.
사전 만들기
다음 구문을 사용하여 특정 유형의 빈 사전을 만들 수 있습니다.
var someDict = [KeyType: ValueType]()
다음은 Int 유형의 키와 String 유형의 값을 사용하여 빈 사전을 만드는 간단한 구문입니다.
var someDict = [Int: String]()
아래 사전의 인스턴스를 생성하려면:
var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
사전 액세스
사전의 인덱스에 따라 배열 요소에 액세스할 수 있으며 구문은 다음과 같습니다.
var someVar = someDict[key]
방법을 배울 수 있습니다. 다음 예를 통해 사전을 생성, 초기화 및 액세스합니다.
import Cocoa var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"] var someVar = someDict[1] print( "key = 1 的值为 \(someVar)" ) print( "key = 2 的值为 \(someDict[2])" ) print( "key = 3 的值为 \(someDict[3])" )
위 프로그램 실행의 출력 결과는 다음과 같습니다.
key = 1 的值为 Optional("One") key = 2 的值为 Optional("Two") key = 3 的值为 Optional("Three")
사전 수정
updateValue(forKey:)를 사용하여 추가할 수 있습니다. 또는 사전의 내용을 업데이트하세요. 키가 없으면 값을 추가하고, 있으면 키에 해당하는 값을 수정합니다. updateValue(_:forKey:) 메소드는 Optional 값을 반환합니다. 예는 다음과 같습니다.
import Cocoa var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"] var oldVal = someDict.updateValue("One 新的值", forKey: 1) var someVar = someDict[1] print( "key = 1 旧的值 \(oldVal)" ) print( "key = 1 的值为 \(someVar)" ) print( "key = 2 的值为 \(someDict[2])" ) print( "key = 3 的值为 \(someDict[3])" )
위 프로그램 실행의 출력 결과는 다음과 같습니다.
key = 1 旧的值 Optional("One") key = 1 的值为 Optional("One 新的值") key = 2 的值为 Optional("Two") key = 3 的值为 Optional("Three")
다음과 같이 키를 지정하여 사전의 값을 수정할 수도 있습니다.
import Cocoa var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"] var oldVal = someDict[1] someDict[1] = "One 新的值" var someVar = someDict[1] print( "key = 1 旧的值 \(oldVal)" ) print( "key = 1 的值为 \(someVar)" ) print( "key = 2 的值为 \(someDict[2])" ) print( "key = 3 的值为 \(someDict[3])" )
의 출력 결과 위 프로그램의 실행은 다음과 같습니다.
key = 1 旧的值 Optional("One") key = 1 的值为 Optional("One 新的值") key = 2 的值为 Optional("Two") key = 3 的值为 Optional("Three")
Remove Key -Value pair
우리는 removeValueForKey() 메소드를 사용하여 사전 키-값 쌍을 제거할 수 있습니다. 이 메서드는 키가 존재하면 제거된 값을 반환하고, 존재하지 않으면 nil을 반환합니다. 예는 다음과 같습니다.
import Cocoa var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"] var removedValue = someDict.removeValueForKey(2) print( "key = 1 的值为 \(someDict[1])" ) print( "key = 2 的值为 \(someDict[2])" ) print( "key = 3 的值为 \(someDict[3])" )
위 프로그램 실행의 출력 결과는 다음과 같습니다.
key = 1 的值为 Optional("One") key = 2 的值为 nil key = 3 的值为 Optional("Three")
키 값을 nil로 지정하여 키-값(키-값) 쌍을 제거할 수도 있습니다. 예는 다음과 같습니다.
import Cocoa var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"] someDict[2] = nil print( "key = 1 的值为 \(someDict[1])" ) print( "key = 2 的值为 \(someDict[2])" ) print( "key = 3 的值为 \(someDict[3])" )
위 프로그램 실행 출력은 다음과 같습니다.
key = 1 的值为 Optional("One") key = 2 的值为 nil key = 3 的值为 Optional("Three")
사전 탐색
우리는 for-in 루프를 사용하여 사전의 키-값 쌍을 탐색할 수 있습니다. 예는 다음과 같습니다.
import Cocoa var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"] for (key, value) in someDict { print("字典 key \(key) - 字典 value \(value)") }
위 프로그램 실행의 출력 결과는 다음과 같습니다.
字典 key 2 - 字典 value Two 字典 key 3 - 字典 value Three 字典 key 1 - 字典 value One
또한 enumerate() 메서드를 사용하여 사전 인덱스와 (키, 값) 쌍을 반환하는 사전 순회를 수행할 수도 있습니다.
import Cocoa var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"] for (key, value) in someDict.enumerate() { print("字典 key \(key) - 字典 (key, value) 对 \(value)") }
Above 프로그램 실행의 출력 결과는 다음과 같습니다.
字典 key 0 - 字典 (key, value) 对 (2, "Two") 字典 key 1 - 字典 (key, value) 对 (3, "Three") 字典 key 2 - 字典 (key, value) 对 (1, "One")
사전을 배열로 변환
사전의 키-값 쌍을 추출하여 독립 배열로 변환할 수 있습니다. 예는 다음과 같습니다.
import Cocoa var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"] let dictKeys = [Int](someDict.keys) let dictValues = [String](someDict.values) print("输出字典的键(key)") for (key) in dictKeys { print("\(key)") } print("输出字典的值(value)") for (value) in dictValues { print("\(value)") }
위 프로그램 실행의 출력 결과는 다음과 같습니다.
输出字典的键(key) 2 3 1 输出字典的值(value) Two Three One
count 속성
읽기 전용 count 속성을 사용하여 사전에 있는 키-값 쌍 수를 계산할 수 있습니다.
import Cocoa var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"] var someDict2:[Int:String] = [4:"Four", 5:"Five"] print("someDict1 含有 \(someDict1.count) 个键值对") print("someDict2 含有 \(someDict2.count) 个键值对")
위 프로그램 실행의 출력 결과는 다음과 같습니다.
someDict1 含有 3 个键值对 someDict2 含有 2 个键值对
isEmpty attribute
Y 우리는 isEmpty 속성을 읽어서 사전이 비어 있는지 확인하고 부울 값을 반환하기만 하면 됩니다.
import Cocoa var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"] var someDict2:[Int:String] = [4:"Four", 5:"Five"] var someDict3:[Int:String] = [Int:String]() print("someDict1 = \(someDict1.isEmpty)") print("someDict2 = \(someDict2.isEmpty)") print("someDict3 = \(someDict3.isEmpty)")
위 프로그램 실행의 출력 결과는 다음과 같습니다.
someDict1 = false someDict2 = false someDict3 = true