我试图回答另一个StackOverflow问题,发现我对Swift缺乏了解。
下面是游乐场代码,演示了我遇到的问题。
import Foundation
// How do I access the value of dictionary and update the value, without replacing it?
// How do I make the inner dictionary mutable?
var sampleDict = [
"dictionary" : [String: String](),
"array" : [String]()
]
(sampleDict["dictionary"] as! [String:String]).updateValue("avalue", forKey: "akey")
// ERROR: Swift.playground:12:27: error: immutable value of type '[String : String]' only has mutating members named 'updateValue'
//(sampleDict["dictionary"] as! [String:String]).updateValue("avalue", forKey: "akey")
(sampleDict["dictionary"] as! [String:String])["akey"] = "avalue"
// ERROR: Swift.playground:14:56: error: cannot assign to the result of this expression
// (sampleDict["dictionary"] as! [String:String])["akey"] = "avalue"
我的问题是
答案 0 :(得分:1)
我认为这是不可能的。在查看var levelTwoPermutationObjects = Enumerable.Range(0, 4)
.Select(arg => new permutationObject
{
element = number
})
.ToList();
Parallel.ForEach(levelTwoPermutationObjects,
permutationObject => permutationObject.DoThings());
声明时,似乎没有方法来更改值,只替换它。这有点意义,因为当你得到一个值时,它会返回字典中真实结构的副本(结构总是被复制)。当然,在使用课程时它会起作用。这是我的理论..
Dictionary