匹配模式中的类型注解
Type annotation in match pattern
我正在使用 serde_json
crate,并且必须为 serde_json::from_slice()
的 return 值做一个类型注释。如果我之后使用 let
和 match
语句,这有效
let n: Result<serde_json::Value, serde_json::Error> = serde_json::from_slice(buf);
match n {
Ok(_i) => (),
Err(_e) => (),
};
但是因为我不需要n
,所以我一开始就不想做let
语句,只使用一个匹配模式。如何为 _i
制作类型注释?
您可以使用此语法 func::<T>()
.
显式指定 type parameters of a function call
在from_slice()
的情况下,只需要指定成功值类型即可。所以你只需要 from_slice::<Value>(buf)
.
match serde_json::from_slice::<serde_json::Value>(buf) {
Ok(_i) => (),
Err(_e) => (),
};
我正在使用 serde_json
crate,并且必须为 serde_json::from_slice()
的 return 值做一个类型注释。如果我之后使用 let
和 match
语句,这有效
let n: Result<serde_json::Value, serde_json::Error> = serde_json::from_slice(buf);
match n {
Ok(_i) => (),
Err(_e) => (),
};
但是因为我不需要n
,所以我一开始就不想做let
语句,只使用一个匹配模式。如何为 _i
制作类型注释?
您可以使用此语法 func::<T>()
.
在from_slice()
的情况下,只需要指定成功值类型即可。所以你只需要 from_slice::<Value>(buf)
.
match serde_json::from_slice::<serde_json::Value>(buf) {
Ok(_i) => (),
Err(_e) => (),
};