我正在使用泛型类型来创建闭包。但是我只限于有限数量的通用参数。
typealias Closure<T> = (T) -> Void
这有效:
func foo(closure: Closure<(String, Bool)>) {}
这不是:
func foo(closure: Closure<String, Bool>) {}
创建通用可变参数的任何方法?
答案 0 :(得分:3)
您所描述的不是变量(即Closure<String, ...>
,而Swift也没有)。你所描述的内容非常接近Swift中的“splatted tuples”。 (Swift几乎肯定会称它为“splatted type parameters”或类似的东西。)但不,Swift没有这个功能。最近你删除了为了使用它而需要的相关功能(“splatted tuples”),所以即使你可以创建它,你几乎肯定无法做任何事情,因为没有办法打电话关闭。