最近,我研究了弱而无主的var。弱引用一个可选的var,但不拥有一个空的var。所以我很好奇解包的机制是什么。
谢谢大家。
答案 0 :(得分:1)
实际上,这可以追溯到泛型类型。实现是这样的
enum OptionalValue<Wrapped> {
case none
case some(Wrapped)
}
当您尝试打开包装时,它会检查它是否为none
。这就像在做这样的事情。
var possibleInteger: OptionalValue<Int> = .none
possibleInteger = .some(100)
所以我认为没有太大的开销。这是一个简单的检查。
答案 1 :(得分:0)
我认为您正在将所有概念融合为一个。我建议阅读这篇文章,以获取strong
,weak
,unowned
引用,本文使用一个示例和图表来向您展示引用类型如何工作以及如何避免保留周期。搏一搏。
https://krakendev.io/blog/weak-and-unowned-references-in-swift
当涉及到包装可选包装时,有很多方法可以做到。尝试掌握以下概念(Google上有数百万个来源)
If let
语句guard
语句基本上可选的是大小写为.none和.some(yourWrappedVariable)的枚举。
或者,如果您要问的是真正特定的问题,请尝试更详细地编辑问题,这样肯定会得到更好的答案。