Apple에서 제공 swift
하는 iBook- The Swift Programming Language
on Swift 를 따라 배우기 시작했습니다 . 이 책은 다음 [:]
과 같이 배열을 선언하는 동안 빈 사전을 만들어야한다고 말합니다 []
.
다음과 같이 빈 배열을 선언했습니다.
let emptyArr = [] // or String[]()
그러나 빈 사전을 선언하면 구문 오류가 발생합니다.
let emptyDict = [:]
빈 사전을 어떻게 선언합니까?
답변
var emptyDictionary = [String: String]()
var populatedDictionary = ["key1": "value1", "key2": "value2"]
참고 : 시간이 지남에 따라 사전의 내용을 변경하려는 경우 var
(변수) 로 선언하십시오 . 빈 사전을 (일정한) 것으로 선언 할 수 는let
있지만 시간이 지남에 따라 내용을 변경하려는 의도가있는 경우 의미가 없습니다. 초기화 후에 상수를 변경할 수 없기 때문입니다.
이전 답변 :
빈 유형의 사전을 작성하면 <String, String>
다음과 같습니다.
var emptyDictionary = Dictionary<String, String>()
답변
[:]
타입 정보가 없으면 사용할 수 없습니다 .
이 경우 명시 적으로 제공해야합니다.
var dict = Dictionary<String, String>()
var
변경할 수 있음을 의미하므로 항목을 추가 할 수 있습니다. 반대로, 당신이 그것을 만들면 let
더 이상 수정할 수 없습니다 ( let
상당한 의미).
[:]
예를 들어 유형 정보를 유추 할 수있는 경우 속기 표기법을 사용할 수 있습니다.
var dict = ["key": "value"]
// stuff
dict = [:] // ok, I'm done with it
마지막 예에서 사전은 Dictionary<String, String>
첫 번째 행 의 유형을 갖는 것으로 알려져 있습니다 . 명시 적으로 지정할 필요는 없지만 추론되었습니다.
답변
스위프트 문서는 빈 사전을 초기화하기 위해 다음과 같은 방법을 권장합니다 :
var emptyDict = [String: String]()
다른 답변이 빈 사전을 초기화하는 다른 방법을 보여주기 때문에이 질문에 처음 왔을 때 약간 혼란 스러웠습니다. 실제로 Swift의 유형을 유추하는 능력이 약간 중복되거나 지나치게 장황하지만 실제로는 할 수있는 방법이 많이 있습니다.
var emptyDict = [String: String]()
var emptyDict = Dictionary<String, String>()
var emptyDict: [String: String] = [:]
var emptyDict: [String: String] = [String: String]()
var emptyDict: [String: String] = Dictionary<String, String>()
var emptyDict: Dictionary = [String: String]()
var emptyDict: Dictionary = Dictionary<String, String>()
var emptyDict: Dictionary<String, String> = [:]
var emptyDict: Dictionary<String, String> = [String: String]()
var emptyDict: Dictionary<String, String> = Dictionary<String, String>()
빈 사전이 있으면 다음과 같이 키-값 쌍을 추가 할 수 있습니다.
emptyDict["some key"] = "some value"
사전을 다시 비우려면 다음을 수행하십시오.
emptyDict = [:]
형식이 <String, String>
초기화 된 방식이기 때문에 여전히 유형 입니다.
답변
이것을 사용하십시오.
var emptyDict = [String: String]()
답변
다음과 같이 간단히 선언 할 수 있습니다.
var emptyDict:NSMutableDictionary = [:]
답변
사전에 유형을 제공해야합니다
// empty dict with Ints as keys and Strings as values
var namesOfIntegers = Dictionary<Int, String>()
컴파일러가 형식을 유추 할 수있는 경우 더 짧은 구문을 사용할 수 있습니다
namesOfIntegers[16] = "sixteen"
// namesOfIntegers now contains 1 key-value pair
namesOfIntegers = [:]
// namesOfIntegers is once again an empty dictionary of type Int, String
답변
빠른:
var myDictionary = Dictionary<String, AnyObject>()