小编Cen*_*nny的帖子

带有Void的泛型类型在Swift 4中提供了错误缺失参数

当我尝试迁移到Swift 4时,如果你将Void作为输入,我的通用类型的闭包发生了错误.这在Swift 3中运行良好,但现在没有那么多,任何人都知道为什么,这是一个bug还是一个功能?

通过违反显式处理此案例的另一个闭包,有一种解决方法.但是很高兴不必使用这种解决方法并理解为什么在Swift 4中出现此错误.

typealias Handler<T> = (T) -> Void

func foo(completion: Handler<String>) {
    completion("fooing")
}

// This worked in Swift 3, but not in Swift 4
func bar(completion: Handler<Void>) {
    completion() // Missing argument for parameter #1 in call
}
Run Code Online (Sandbox Code Playgroud)

generics closures void swift swift4

3
推荐指数
1
解决办法
952
查看次数

标签 统计

closures ×1

generics ×1

swift ×1

swift4 ×1

void ×1