Swift,在另一个通用函数中调用泛型函数
问题描述:
我是Swift中的新手(来自Java)。当我试图从另一个通用函数调用泛型函数时,我感到非常头痛。更具体地说,我得到了标准的错误信息:“通用参数T无法推断”。
我认为我可能不知道一些语言细节,所以希望有人可以给我一个解决方案,即我怎样才能纠正这个代码,使其工作:Swift,在另一个通用函数中调用泛型函数
//Second parameter is workaround for error no generic parameter in function signature
func performRequest<T>(request: Request, stub: T?) -> Int {
let result: T? = requestExecutor.execute(request)
return request.getId()
}
我已经花了相当多的时间在谷歌试图找出解决方案,但没有发现任何东西。我也试过用T.Type代替T?在参数中,但没有运气。我在xCode 7.3.1中使用了Swift 2.2.1。
答
对不起,我是个白痴。由于Sulthan的评论我期待实现我RequestExecutor的,我已经意识到,其执行对仿制药的限制,即
func execute<T: Mappable>(request: Request) ...
在原来的职位的功能改变后
func performRequest<T: Mappable>(request: Request, stub: T?) -> Int...
一切工作正常。
再次抱歉,我是专注于另一部分代码的方式。感谢Sulthan让我走上正轨。
希望这个答案对别人有帮助:)
请问您能提供一个完整的例子吗? – Sulthan