xNa*_*XDy 2 inference typing rust
我处于以下情况:
fn some_fn<K, T, F, S>(func: F, other_func: S) -> Vec<i64>
where
K: SomeType<T>,
T: SomeOtherType,
F: Fn() -> (),
S: Fn() -> (),
{
//...
}
Run Code Online (Sandbox Code Playgroud)
对于上面的示例,Rust 可以正确推断类型T、F和S,但不能K(如预期的那样)。
K有没有办法在调用时只指定 的类型,some_fn而不指定T、F和S?
我当前的解决方法是将签名更改为some_fntofn some_fn<K, T, F, S>(cheat: Option<K>, func: F, other_func: S)并调用该函数,如下所示:
let cheat: Option<SomethingThatImplements> = None;
let result = some_fn(cheat, func, other_func);
Run Code Online (Sandbox Code Playgroud)
但是,我发现这非常笨拙。我无法找到有关此主题的任何内容,是否可以仅指定类型参数的一部分?
| 归档时间: |
|
| 查看次数: |
317 次 |
| 最近记录: |