2016-10-07 4 views
1

辞書に3つのメニューを追加しようとするとどうなりますか試してみるとエラーになりますメニューの3番目の項目を強制的に展開します。しかし、私はそれらの2アンラップ強制場合、私は彼らに2は、 'inout'型の値を添字にすることはできません[文字列:Double](別名inout Dictionary <String、Double>)

var menu = ["fish": 10.99, "chips": 5.99, "kebab": 6.99] 
var totalCost = menu["fish"]! + menu["chips"]! + menu["kebab"]! 
print("The total cost of the three items is \(totalCost)") 

の合計を取得することができますが、私はそれが

var menu = ["fish": 10.99, "chips": 5.99, "kebab": 6.99] 
var totalCost = menu["fish"]! + menu["chips"]! 
var thisCost = totalCost + menu["kebab"]! 
print("The total cost of the three items is \(thisCost)" 

を働いていたこの方法は私が迅速3を使用しています、それをしようとしたとき、それはその缶のだろう早送り3でサポートされなくなりましたか?

+0

最初のものでは、辞書を作成するときに使用するキーは、アクセス時にキーと一致しません。すなわち「マグロ」!=「魚」および「ステーキ」!=「ケバブ」。 –

+0

@JamesSnookはなぜそうではないのですか、私は元の形に戻して編集しましたが、それでもやりたくはありません。 –

+1

私にはコンパイラのバグのように見えますが、最初のスニペットがうまくいくはずです。エラーメッセージは意味をなさない。 Appleにバグレポート(レーダー)を送るべきです。 – Moritz

答えて

1

長い間追加した行は、繰り返し処理して合計することができますが、はるかに簡単です。

var totalCost: Double = 0 
for each in menu { 
    totalCost += each.value 
} 
print(totalCost) 
関連する問題