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_fn
tofn 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 次 |
最近记录: |