Weisen Sie dem optionalen Wörterbuch in Swift einen Wert zu
Ich finde einige überraschende Verhaltensweisen mit optionalen Wörterbüchern in Swift.
var foo:Dictionary<String, String>?
if (foo == nil) {
foo = ["bar": "baz"]
}
else {
// Following line errors with "'Dictionary<String, String>?' does
// not have a member named 'subscript'"
foo["qux"] = "quux"
}
Ich habe viel damit gespielt und versucht, herauszufinden, was mir fehlen könnte, aber nichts scheint diesen Code erwartungsgemäß funktionieren zu lassen, bevor das Wörterbuch nicht optional ist. Was vermisse ich?
Der nächste, den ich bekommen kann, ist der folgende, aber natürlich ist es lächerlich.
var foo:Dictionary<String, String>?
if (foo == nil) {
foo = ["bar": "baz"]
}
else if var foofoo = foo {
foofoo["qux"] = "quux"
foo = foofoo
}