具有可变参数的通用类型

时间:2016-12-13 21:41:11

标签: ios swift generics swift3 type-alias

我正在使用泛型类型来创建闭包。但是我只限于有限数量的通用参数。

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

这有效:

func foo(closure: Closure<(String, Bool)>) {}

这不是:

func foo(closure: Closure<String, Bool>) {}

创建通用可变参数的任何方法?

1 个答案:

答案 0 :(得分:3)

您所描述的不是变量(即Closure<String, ...>,而Swift也没有)。你所描述的内容非常接近Swift中的“splatted tuples”。 (Swift几乎肯定会称它为“splatted type parameters”或类似的东西。)但不,Swift没有这个功能。最近你删除了为了使用它而需要的相关功能(“splatted tuples”),所以即使你可以创建它,你几乎肯定无法做任何事情,因为没有办法打电话关闭。