gpt4 book ai didi

rust - 有没有办法从闭包内部的函数返回?

转载 作者:行者123 更新时间:2023-11-29 07:46:18 25 4
gpt4 key购买 nike

我有以下简化代码:

fn f() -> i32 {
let a = some_result.unwrap_or_else(|_| {
return 1; // want to return this value from f <-------------
});
}

在这种特定的错误情况下,我想从整个函数 f 返回值 1,但我不知道如何在闭包中执行此操作。

如果我改为使用 match 表达式,它可以正常工作,如下所示:

fn f() -> i32 {
let a = match some_result {
Ok(result) => result,
Err(_) => { return 1; },
};
}

但是,这会使代码变得冗长,因为我有微不足道的 Ok 匹配臂。

最佳答案

不,没有。

闭包是底层的一种方法(一种函数)。您要求能够从任意深度嵌套的函数调用中退出父函数。这种非本地流控制通常被证明对程序员的理智和程序维护极为不利。


解决您的问题:

关于rust - 有没有办法从闭包内部的函数返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52027634/

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