如何用泛型编写函数?

时间:2014-12-18 08:24:59

标签: swift

我试图按如下方式编写通用函数:

func convertItems<T>(#itemType: ItemType, rawItems: [Dictionary<String, AnyObject>]) -> [T] {

    var items = [MyModel]()
    // conversion code
    return items
}

为什么编译器会抱怨“MyModel”与T&#39;

相同?

1 个答案:

答案 0 :(得分:0)

返回类型由convertItems的调用方确定,因此您无法在函数体内强制它[MyModel]。想象一下有人称TSomeOtherModel;你当时无法返回[MyModel]

你要么想要这个:

func convertItems<T>(#itemType: ItemType, rawItems: [Dictionary<String, AnyObject>]) -> [T] {
    var items = [T]()
    // conversion code
    return items
}

或者这个:

func convertItems(#itemType: ItemType, rawItems: [Dictionary<String, AnyObject>]) -> [MyModel] {
    var items = [MyModel]()
    // conversion code
    return items
}

代替。