我需要转到一个引用的结构:

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是局部的而不是整个项。

09-08 05:03