2014-12-26 28 views
2

我有這樣的解釋:增加值在字典與SWIFT

var dict = ["cola" : 10, "fanta" : 12, "sprite" : 8] 

,我想添加值,例如有結果爲30,我該怎麼辦呢?換句話說,我怎樣才能添加數字,而不是單詞?

+1

這是很容易的值。你不知道該怎麼做? – matt

+0

我不知道它是不是聖誕節,但我沒有設法得到這個 – stack

+0

但請證明你已經嘗試過_something_。我可以爲你寫代碼,但這不是Stack Overflow的目的。我想幫助你,而不是爲你做你的工作。 – matt

回答

3

As explained in the documentations here.您可以通過其方法和屬性或使用下標語法來訪問和修改字典。閱讀文檔。

var dict = ["cola" : 10, "fanta" : 12, "sprite" : 8] 

要訪問您的字典中的值,可以使用標語法:

if let cola = dict["cola"] as? Int { // to read the value 
    // Do something 
} 
dict["cola"] = 30 // to change the value 
dict["pepsi"] = 25 // to add a new entry to your dictionary 
dict["fanta"] = nil // to delete the fanta entry. 

在你的字典

var sum = 0 
for (drinkName, drinkValue) in dict { 
    println("\(drinkName): \(drinkValue)") 
    sum += drinkValue 
} 

讀取所有的值,也可以

var sum = 0 
for drinkValue in dict.values { 
    sum += drinkValue 
} 
9

由於答案有被接受,這不是一個很好的,我將不得不放棄蘇聯式的方法,並表現出更多的回答這個問題的主題方式。

鑑於你的詞典:

var dict = ["cola" : 10, "fanta" : 12, "sprite" : 8] 

通過創建一個數組出dict.values和減少他們

let sum = Array(dict.values).reduce(0, +) 

或者你可以使用裸形式降低其沒有得到總和要求最初創建陣列:

let sum = reduce(dict.values, 0, +) 
+0

更好的解決方案,因爲它使用了Swift的優點。 – dasdom

+1

從Swift 2.2開始,你可以簡單地使用dict.values.reduce(0,combine:+) – r590

0

接受的答案d不使用迅速的力量

並且做的答案是過時的。

最簡單的更新的解決方案是:

let valuesSum = dict.values.reduce(0, +) 

開始與零個,並總結所有元素