Swift中的模板/泛型专业化扩展

时间:2015-06-05 04:50:14

标签: swift

我想扩展Array以创建联系人列表。

其中一种新方法如下:

extension Array {
    func contactWithChatId<Contact>(chat_id: String) -> Contact? {
        for contact in self {
            if contact.chat_id == chat_id {
                return contact
            }
        }
        return nil
    }
}

但是,我没有找到任何方式在Swift中表达这一点。 有可能做到这一点,以及如何做到?

解决方案:

extension Array {
    func contactWithChatId<T>(chat_id: String) -> Contact? {
        if self.isEmpty {
            return nil
        }
        precondition(self.first is Contact , "Should be a Contact list")
        for contact in self {
            let contact = contact as! Contact
            if contact.chat_id == chat_id {
                return contact
            }
        }
        return nil
    }
}

0 个答案:

没有答案