gpt4 book ai didi

swift ??在一个类型上

转载 作者:搜寻专家 更新时间:2023-10-31 22:20:43 24 4
gpt4 key购买 nike

我知道什么??用作运算符时是什么意思?

我的项目中有一个名为 MyStruct 的结构,特定 var 的自动完成告诉我它的类型为 MyStruct??

不太确定这意味着什么或如何安全地打开它。

最佳答案

正如其他人所说,它是一个双可选,与 nil 合并运算符 (??) 完全无关。

要打开它,你只需打开一个常规可选的,两次:

let doubleOptional: MyStruct?? = MyStruct()

guard let singleOptional = doubleOptional else {
//first unwrapping failed
}

guard let wrappedValue = singleOptional else {
//second unwrapping failed
}

//use wrappedValue

这些并不常见,但有时它们很有用。

例如,假设您有一个存储数组平均值的数据结构。该数组可能为空,因此应允许平均值为 nil,以指示没有平均值。假设计算这个平均值非常昂贵,我们想将它存储在缓存层中。该缓存层可以有一个代表该平均值的双可选。如果值为 Optional.None(即 nil),我们知道缓存还没有值,因此需要对其进行计算。如果值为 Optional.Some(Optional.None),我们知道缓存有一个值,但没有有效的平均值(即数组为空。最后,值可以是 Optional.Some(Optional.Some(/*...*/)),表示有效平均值的有效缓存值。

关于 swift ??在一个类型上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38567514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com