如何编写一个允许任何对象的函数,但在Swift中必须是Printable
和Equatable
对象数组?
class func withItems(items: [AnyObject]){
}
Printable
和Equatable
由于
答案 0 :(得分:3)
您可以使用通用约束来要求函数中的两个协议:
class func withItems<T: AnyObject where T: Equatable, T: Printable>(items: [T]) {
// ...
}
要求存储的属性比较棘手,因为Equatable
不能用作类型。为了做到这一点,你基本上需要使类本身通用。您可能最好将items
声明为AnyObject
数组,并通过类似这样的通用方法提供对它的访问权。