swift - Swift:无法推断通用参数“T”
问题描述
我有一个名为 的协议P
,我想编写一个函数,该函数将返回符合该协议的任何类型的实例。
我写了这个:
func f<T: P>() -> T? {
// ...
}
但是当我尝试调用它时:
var fp = f()
我得到这个错误:Generic parameter 'T' could not be inferred
。我做错了什么以及如何解决这个问题?谢谢你的帮助。
解决方案
你很亲密。假设您有一个struct
A
符合P
. 然后您可以按如下方式指定泛型参数:
var fp: A? = f()
如果没有这些信息,编译器就无法知道fp
应该是什么类型。
推荐阅读
- django - django select2 链式下拉菜单
- c - macOS Maverick 10.13.6 中的 libc.dylib 位于何处
- firebase - 向单个用户发送 Firebase 云消息
- ruby - `File.enum_for(:readlines, ...)` 未枚举
- excel - 修剪整个工作表中的单元格,溢出错误
- regex - 正则表达式 - 匹配特定字符串、起始值、结束值以及介于两者之间的所有内容
- python - 如何在 Jupyter notebook 中制作 Tufte 风格的旁注?
- verilog - 使用 dff verilog 的移位寄存器
- node.js - ENOTSUP:套接字不支持操作
- pic - 延迟子程序时间计算