노드 목록에 대해 Result<Vec<&str>, String>
을 반환하는 함수가 있습니다. 제 의도는 오류나 빈 벡터를 검사하여 일찍 돌아가거나 목록이 있으면 계속합니다.오류 또는 빈 결과가 일치합니다.
이것은 다른 것들 중에서도 내가 시도한 것입니다. 그러나 컴파일러는 x
의 형식에 대해 불평합니다.
let nodes = list_nodes(client, &service);
match nodes {
Err(e) => {
println!("Unable to list nodes: {:?}", e);
return;
},
Ok(x) if x.as_slice() == [] => {
println!("No nodes found for service: {}", service);
return;
}
_ => {}
}
오류 :
error[E0282]: type annotations needed
--> src/main.rs:28:18
|
28 | Ok(x) if x.as_slice() == [] => {
| ^^^^^^^^^^^^^^^^^^ cannot infer type for `A`
문맥에 더 많은 코드가 필요하다고 생각합니다. 예를 들어,'A'는 오류 메시지에 있지만 코드 예제에는 없습니다. https://stackoverflow.com/help/mcve –
@PeterHall을 참조하십시오. 내 코드에는 A가 없습니다. 컴파일러에서 얻은 것이 무엇인지 알 수는 있습니다. 더 이상 사용할 수있는 컨텍스트가 없습니다. –
@Arkaitz,'& x == & []'을 시도하십시오. 이제 슬라이스 참조와 빈 배열을 비교하고 있습니다. – red75prime