-3

最近我研究了weak and unowned var。弱是指一个可选的 var,但 unowned 是一个空的。所以我只是好奇展开的机制是什么。

感谢大家。

4

2 回答 2

1

实际上,这可以追溯到泛型类型。实现是这样的

enum OptionalValue<Wrapped> {
    case none
    case some(Wrapped)
}

当您尝试打开它时,它会检查它是否none存在。这就像做这样的事情。

var possibleInteger: OptionalValue<Int> = .none
possibleInteger = .some(100)

所以我认为没有显着的开销。这是一个简单的检查。

于 2018-10-07T09:19:30.923 回答
0

我认为您正在将所有概念扭曲为一个。我建议阅读这篇文章以获取strongweakunowned参考资料,本文通过示例和图表向您展示参考类型如何工作以及如何避免保留周期。搏一搏。 https://krakendev.io/blog/weak-and-unowned-references-in-swift

在展开可选选项时,有很多方法可以做到这一点。尝试掌握以下概念(谷歌上有数百万个资源)

  • If let陈述
  • guard陈述
  • 强制展开
  • 链接

基本上可选项是大小写为 .none 和 .some(yourWrappedVariable) 的枚举。

或者,如果您想问一些非常具体的问题,请尝试更详细地编辑您的问题,这样您就会得到更好的答案,保证。

于 2018-10-07T09:44:52.243 回答