A documentação do Swift recomenda a seguinte maneira de inicializar um dicionário vazio:
var emptyDict = [String: String]()
Fiquei um pouco confuso quando me deparei com essa pergunta, porque respostas diferentes mostraram maneiras diferentes de inicializar um dicionário vazio. Acontece que existem muitas maneiras de fazer isso, embora algumas sejam um pouco redundantes ou excessivamente detalhadas, dada a capacidade de Swift de inferir o tipo.
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>()
Depois de ter um dicionário vazio, você pode adicionar um par de valores-chave como este:
emptyDict["some key"] = "some value"
Se você quiser esvaziar seu dicionário novamente, faça o seguinte:
emptyDict = [:]
Os tipos ainda são <String, String>
porque foi assim que foi inicializado.