Error: Unveränderlicher Wert, der an die Reduktionsfunktion übergeben wird

Ich versuche, den folgenden Code auszuführen, der ein Array von Tupeln in ein Wörterbuch umwandelt, erhalte jedoch den folgenden Kompilierungsfehler:

Immutable-Wert vom Typ '[String: String]' hat nur mutierende Member mit dem Namen 'updateValue'

var array = [("key0", "value0"), ("key1", "value1")]
var initial = [String: String]()
var final = array.reduce(initial) { (dictionary, tuple) in
    dictionary.updateValue(tuple.0, forKey: tuple.1)
    return dictionary
}

Warum ist das, wennInitial wurde als @ deklarie var? Hat es mit @ zu t@kein Entkomme auf Reduce's Unterschrift

func reduce<U>(initial: U, combine: @noescape (U, T) -> U) -> U

Antworten auf die Frage(6)

Ihre Antwort auf die Frage