Я нахожу удивительное поведение с дополнительными словарями в 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"
}
Я много играл с этим, пытаясь понять, чего мне не хватает, но похоже, что этот код не работает, как ожидается, не делает словарь не дополнительным. Что мне не хватает?
Ближайшим, что я могу получить, является следующее, но, конечно, это смешно.
var foo:Dictionary<String, String>?
if (foo == nil) {
foo = ["bar": "baz"]
}
else if var foofoo = foo {
foofoo["qux"] = "quux"
foo = foofoo
}