gpt4 book ai didi

表达式中的 Rust "Not all control paths return a value"

转载 作者:行者123 更新时间:2023-11-29 08:02:43 24 4
gpt4 key购买 nike

我有以下代码:

//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;
}

如何使用不包括 return 语句的推荐 Rust 样式从此函数返回?如果我不包含它,我会得到以下编译错误:

test.rc:29:0: 1:0 error: not all control paths return a value
error: aborting due to previous error

我觉得这个问题是因为我对“;”的理解不够在 Rust 中以及表达式和语句之间的区别。谢谢!

最佳答案

block 中的最后一条语句作为它的返回值,所以你可以这样做

fn less_or_greater(x: int, y: int) -> &'static str {
if x == y {
"EQUAL"
} else if x > y {
"GREATER"
} else {
"LESS"
}
}

关于表达式中的 Rust "Not all control paths return a value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20113338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com