swift - 为什么将 void 赋给局部变量

标签 swift syntax

所以这实际上是可能的。

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/

相关文章:

swift - 使用 Xcode 9 在 iOS 11 上发布 Google map API

ios - 单击按钮增加和减少值

Matlab:不正确的索引矩阵引用(或 outsmarting matlab)

syntax - 如何使用XPath表达式选择所有叶节点?

json - 蒙戈数据库 : updating an objects using dot notation (multi-level object)

Python 字符串/参数操作

ios - 如何快速创建通用关联类型协议(protocol)数组?

ios - MapBox:在注释上绘制的 MGLineStyleLayer

swift - 如何检查 var 是否是 Swift 中的元组?

ios - 从 Swift IOS 套接字获取 InputStream 中的文件