У меня есть следующий код:Rust «Не все пути управления возвращают значение» в выражении
//returns GREATER if x is greater than y
//LESS if x is less than y
//EQUAL if x == y
fn less_or_greater(x: int, y: int) -> &str{
let result =
if x == y {
"EQUAL"
}
else if x > y{
"GREATER"
}
else {
"LESS"
};
return result;
}
Как вернуться из этой функции, используя рекомендуемый Rust стиль не включая возвратное заявление? Если я не включаю его я получаю следующее сообщение об ошибке компиляции:
test.rc:29:0: 1:0 error: not all control paths return a value
error: aborting due to previous error
Я думаю, что эта проблема из-за мое отсутствие понимания «;» в Rust и различие между выражениями и утверждениями. Благодаря!
Я надеюсь, что это была игрушка пример, и вы на самом деле не с помощью строки, как это вместо перечислений. 'std :: cmp :: Ordering' - это перечисление с вариантами' Less', 'Equal' и' Greater' и используется как возвращаемый тип метода TotalOrd.cmp. –