我需要转到一个引用的结构:
class SearchKnot {
var isWord : Bool = false
var text : String = ""
var toNext = Dictionary<String,SearchKnot>()
}
插入时,我需要更新toNext词典中的值。因为我想避免递归,所以我循环执行。但是我需要一个变量,它可以从一个跳到下一个项目,跳到另一个项目,并能够对其进行更改。
var knots = toNext
...
let newKnot = SearchKnot()
knots[s] = newKnot
最后一条命令仅更改本地副本,但是我需要更改原始副本。我需要间接访问。在C语言中,我将使用* p定义为&toNext。但是在Swift中?
最佳答案
我找到了解决方案。我记得旧的帕斯卡时代。 ;-)
我不使用最后一个参考,而是倒数第二个。代替
knots[s]
我用
p.knots[s]
为了跳到下一个结,我还使用
p = p.knots[s]
并可以使用
p.knots[s]
再次。
p.knots[s] = newKnot
也是有效的,因为p是局部的而不是整个项。