【发布时间】:2017-12-06 14:25:36
【问题描述】:
我有一个函数,它的标题看起来像这样
func doSomethingOnCollection<T:Collection>(_ array: T) -> [T]
如您所见,它以 Collection 作为参数,表示它可以是 Array、Set 或 Dictionary,如何在运行时检查此函数中传递的参数类型?
【问题讨论】:
-
你为什么要这个?
-
@Hamish 我想通过调用一个通用函数来对我的集合类型进行排序,该函数将 Collection 作为输入作为返回排序数组
-
这并不能解释为什么你要“在运行时检查在这个函数中传递的参数类型”——泛型的重点是你不应该有进行这种运行时类型检查。
-
@Hamish 而不是为每个集合类型编写不同类型的函数我想编写一个通用函数,该函数适用于任何类型的集合,即使是海关的
-
@Zubair,
that will work on any type of collection even for customs one's— 如果您手动检查内部集合的类型,这将如何工作?
标签: swift generics collections