Swift:无法推断通用参数 'T'

Swift : Generic parameter 'T' could not be inferred

我有一个名为 P 的协议,我想编写一个函数来 return 一个符合该协议的任何类型的实例。

我写了这个:

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

但是当我尝试调用它时:

var fp = f()

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

你非常接近。假设您有一个符合 Pstruct A。然后您可以按如下方式指定通用参数:

var fp: A? = f()

没有这些信息,编译器无法知道 fp 应该是什么类型。