ios - 具有可变参数的通用类型别名

标签 ios swift generics swift3 type-alias

我正在使用通用类型别名来创建闭包。但是,我只能使用有限数量的通用参数。

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/

相关文章:

ios - Interface Builder 中不显示字体

ios - 对成员 'filter' swift4 的模糊引用

swift - 通过枚举显示多个 UICollectionViewCells?

java - 将 1 传递给多个相同对象类型的参数

Android 中继承中的 Java 泛型

swift - 在 SwiftUI 中创建惰性 NavigationLink 时出现遗传问题

ios - Swift UICollectionView 单元格神秘地重复

ios - 在类中使用枚举作为参数

ios - 来自网址的按钮图像未显示

ios - 如何在选择自定义 TableView 时更改单元格 UI 元素的状态?