有几次我必须用类型写一个块
() -> Void 或者 () -> ()
现在,如果块可以为空,则变为
(() -> Void)?
这不是很可读。
是否有标准类型可供使用,或者我能做的最好的事情就是创建一个自定义类型typealias?
不幸的是,没有 Swift 标准类型(() -> Void)?(或者(() -> ())?可以说更难阅读)。如果您查看 Swift 标准库,您还会发现这Void只是typealias一个空元组的a ():
typealias Void = ()
Run Code Online (Sandbox Code Playgroud)
这意味着你可以写(Void -> Void)?,这可能更容易阅读?尽管在标准库中,但这只是为了可读性而采用的标准类型。
除此之外,执行此操作的唯一方法是使用自定义typealias,例如:
typealias OptionalEmptyClosure = (() -> ())?
Run Code Online (Sandbox Code Playgroud)