Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift,在另一个泛型函数中调用泛型函数_Swift_Generics - Fatal编程技术网

Swift,在另一个泛型函数中调用泛型函数

Swift,在另一个泛型函数中调用泛型函数,swift,generics,Swift,Generics,我是Swift的新手(来自爪哇)。当我试图从另一个泛型函数调用泛型函数时,我感到非常头痛。更具体地说,我收到了标准错误消息:“无法推断通用参数T”。 我假设我可能不知道一些语言细节,因此希望有人能给我一个解决方案,即如何更正此代码以使其正常工作: //Second parameter is workaround for error no generic parameter in function signature func performRequest<T>(request

我是Swift的新手(来自爪哇)。当我试图从另一个泛型函数调用泛型函数时,我感到非常头痛。更具体地说,我收到了标准错误消息:“无法推断通用参数T”。
我假设我可能不知道一些语言细节,因此希望有人能给我一个解决方案,即如何更正此代码以使其正常工作:

//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?->Int{
让结果:T?=requestExecutor.execute(请求)
返回请求。getId()
}

我已经花了相当多的时间在谷歌上寻找解决方案,但什么也没找到。我也试着用T.Type代替T?在参数中,但没有运气。我在xCode 7.3.1中使用Swift 2.2.1。

对不起,我是个白痴。感谢Sulthan的评论,我期待我的RequestExecutor的实现,我已经意识到它的执行对泛型有约束,即

func execute<T: Mappable>(request: Request) ...   
func执行(请求:请求)。。。
在我原来的职位上的职能转变为

func performRequest<T: Mappable>(request: Request, stub: T?) -> Int...  
func performRequest(请求:请求,存根:T?)->Int。。。
一切正常。
再一次抱歉,我正在集中精力于代码的另一部分。感谢苏丹让我走上正轨。

希望这个答案能对其他人有所帮助:)

对不起,我是个白痴。感谢Sulthan的评论,我期待我的RequestExecutor的实现,我已经意识到它的执行对泛型有约束,即

func execute<T: Mappable>(request: Request) ...   
func执行(请求:请求)。。。
在我原来的职位上的职能转变为

func performRequest<T: Mappable>(request: Request, stub: T?) -> Int...  
func performRequest(请求:请求,存根:T?)->Int。。。
一切正常。
再一次抱歉,我正在集中精力于代码的另一部分。感谢苏丹让我走上正轨。

希望这个答案能对其他人有所帮助:)

你能提供一个完整的例子吗?你能提供一个完整的例子吗?