斯威夫特的新代码和斯威夫特开放课程的代码如下:

if pending != nil {
    acccumulator = pending!.binaryFunction(pending!.firstOperand,acccumulator)
    pending = nil
}

当我了解解包时,pending在这种情况下,确保在if块内不为零,那么为什么在使用它时要使用!来解包挂起?

最佳答案

因为检查与块内的代码没有关系。在本例中,您应该使用if,如下所示:

if let nonNilPending = pending {
    acccumulator = nonNilPending.binaryFunction(nonNilPending.firstOperand,acccumulator)
    pending = nil
}

这样你就可以避免用力打开。

关于swift - 为什么打开一个不能为零的变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40468533/

10-08 23:29