【发布时间】:2022-01-20 05:07:43
【问题描述】:
如果任务只是解开值,我不明白制作无用常量的概念:
guard let foo = foo else { return }
对
guard foo != nil else { return }
这些陈述之间有什么区别?不使用后者的原因是什么?
下面是使用 guard let 的一些例子:
var array: [String] = ["pineapple", "potato", "corn"]
guard let lastElement = array.last, lastElement == "corn" else { return false }
并且不使用 let:
guard array.last == "corn" else { return false }
我不能只使用第二种方法,因为它更干净、更简单并且可能更节省内存吗?
【问题讨论】:
-
您在编辑之前的问题更有意义 - 通过您的编辑,
array不能是nil,因为它被定义为[String]和array.last将失败而不是array?.last如果它是。回滚到原来的问题可能更好。 -
请发布您的实际代码。
array != nil???last是可选的,但您的array不是 -
guard foo != nil else { return }在您不想使用foo的值但工作流的修改将依赖于其状态设置的情况下很有用