在匹配模式中键入注释

Mar*_*rio 0 types annotations match rust

我正在使用serde_json板条箱,并且必须为 的返回值进行类型注释serde_json::from_slice()。如果我之后使用 alet和 amatch语句,这有效

let n: Result<serde_json::Value, serde_json::Error> = serde_json::from_slice(buf);
match n {
    Ok(_i) => (),
    Err(_e) => (),
};
Run Code Online (Sandbox Code Playgroud)

但由于我不需要n,所以我不想let首先做出该声明,并且只使用单个匹配模式。如何为 进行类型注释_i

Val*_*tin 5

您可以使用此语法显式指定函数调用的类型参数func::<T>()

在 的情况下from_slice(),您只需指定成功值类型。所以你所需要的就是from_slice::<Value>(buf).

match serde_json::from_slice::<serde_json::Value>(buf) {
    Ok(_i) => (),
    Err(_e) => (),
};
Run Code Online (Sandbox Code Playgroud)