![]() |
1
1
在撰写本文时,特质解决者似乎无法解决这种间接问题。 似乎需要手动注释类型,如下所示:
(注意,我删除了一些不必要的注释) 你可以进一步优化这一步,这样你只需要注释返回类型,因为(通过一点注释的痛苦)向量的元素可以由编译器确定:
但我认为,在撰写本文时,这已经是最好的了。 |
![]() |
2
0
就我个人而言,我并不完全了解你的确切用例(这个问题在任何特定用例中都很模糊),但只要在需要的地方使用这4行代码,这个问题就可以很容易地得到解决,就我个人来说,如果把它拉到一个专用的fn中,我会比任何事情都更困惑。这是一种常见且易于识别的模式的变体,
正如错误消息所示,该问题源于编译器中的临时限制,希望很快能得到修补。编译器无法处理泛型,特别是当涉及引用时,IntoIterator::IntoIter上的trait边界。
其他选择是取消fn的通用性;让它采用特定的数据类型,从而绕过限制(特别是考虑是否需要将此fn作为回调传递),或者你可以让fn用户直接创建并提供DEI本身,基本上传递
|