我正在使用通用类型别名来创建闭包。但是,我只能使用有限数量的通用参数。
typealias Closure<T> = (T) -> Void
这有效:
func foo(closure: Closure<(String, Bool)>) {}
这不会:
func foo(closure: Closure<String, Bool>) {}
有什么方法可以创建通用可变参数?
最佳答案
你所描述的不是可变参数(即 Closure<String, ...>
,而 Swift 也没有)。你所描述的非常接近 Swift 中的“splatted tuples”。 (Swift 几乎肯定会称之为“splatted 类型参数”或类似的东西。)但是,Swift 没有这个功能。为了使用它(“splatted tuples”)你需要的相关功能最近被删除了,所以即使你可以创建它,你几乎肯定不能用它做任何事情,因为没有办法调用关闭。
关于ios - 具有可变参数的通用类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41131035/