所以这实际上是可能的。
func clearItems() {
}
func reloadItems(_ clearItems: (() -> Void)? = nil) {
if let void = clearItems?() {
}
}
reloadItems(clearItems)
这应该是非法的吗?或者我们应该被迫使用 _ 而不是变量名? void 实际上可以在这里以某种方式被消耗吗?
最佳答案
Void 是 Swift 中的一种类型,就像其他类型一样。很少需要传递它,但这并没有改变语言支持返回并将其存储在常量中的事实。
无论如何,这都是隐式发生的,你只是很明确。如果您希望在每个不返回值的函数末尾使用 return ()
,则可以,因为 ()
表示 Void 的实例。编译器会为您完成此操作,因此您无需这样做。
关于swift - 为什么将 void 赋给局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51922090/