generics函数和属性,以Equatable和Printable作为Swift中的参数
如何编写一个函数,允许任何对象,但必须在Swift中可Printable
和Equatable
对象数组?
class func withItems(items: [AnyObject]){ }
- 我需要项目可
Printable
和Equatable
- 我需要将items数组声明为我的类的属性
谢谢
您可以使用通用约束来在一个函数中要求两个协议:
class func withItems<T: AnyObject where T: Equatable, T: Printable>(items: [T]) { // ... }
因为Equatable
不能用作types,所以要求存储的属性更复杂。 为了做到这一点,你基本上需要使这个类本身是通用的。 你可能会更好的声明items
作为一个AnyObject
的数组,并提供像这样的通用方法访问它。