Swift:无法推断通用参数“ T”

时间:2019-01-17 16:24:28

标签: swift swift-protocols

我有一个名为P的协议,并且我想编写一个函数,该函数将返回符合该协议的任何类型的实例。

我写了这个:

func f<T: P>() -> T? {
    // ... 
}

但是当我尝试调用它时:

var fp = f()

我收到此错误:Generic parameter 'T' could not be inferred。我在做错什么以及如何解决这个问题? 感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

您非常亲密。假设您有一个符合struct的{​​{1}} A。然后,您可以指定通用参数,如下所示:

P

没有这些信息,编译器将无法知道var fp: A? = f() 的类型。