有没可以改善多层嵌套的写法?
struct A{}
fn main() {
let avar:Result<A, A>=Result::Ok(A{});
match avar {
Ok(a)=>{
let bvar:Result<A, A>=Result::Ok(A{});
match bvar {
Ok(a)=>{
let cvar:Result<A, A>=Result::Ok(A{});
match cvar {
Ok(a)=>{
//xxx
}
Err(a)=>{
//错误返回
}
}
}
Err(a)=>{
//错误返回
}
}
}
Err(a)=>{
//错误返回
}
}
}
1
共 14 条评论, 1 页
评论区
写评论有引用+生命周期参数的时候,
引入闭包只会带来更多的问题
--
👇
Aya0wind: 也许你要的是这种?
没有具体的需求
就是在想 match的多层嵌套 有没办法转成的 更好的多个平级if 使代码更好读的问题 好比
--
👇
Bai-Jinlin: 那你倒是把条件说明白再提问题呀???你就放个代码我们说了问号明明可以解决后你就开始以我其实是是要这样那样的条件开始补充你的要求了,别的不说你起码把你为什么不用问号,和想要实现什么功能说出来吧?
--
👇
shanliu: 你大概想说的是 .map_err() 后? 放到闭包里比match代码更丑 而且闭包里放不了async
👇
Bai-Jinlin: 这不就是?吗?
也许你要的是这种?
那你倒是把条件说明白再提问题呀???你就放个代码我们说了问号明明可以解决后你就开始以我其实是是要这样那样的条件开始补充你的要求了,别的不说你起码把你为什么不用问号,和想要实现什么功能说出来吧?
--
👇
shanliu: 你大概想说的是 .map_err() 后? 放到闭包里比match代码更丑 而且闭包里放不了async
👇
Bai-Jinlin: 这不就是?吗?
你大概想说的是 .map_err() 后? 放到闭包里比match代码更丑 而且闭包里放不了async
👇
Bai-Jinlin: 这不就是?吗?
不放到闭包 放闭包复杂的类型出现诡异问题很难定位 已在用 clippy
👇
Pikachu: 简单的建议:
当然,个人习惯上,我会选择用and_then、or_else来写这段代码。具体请参考Result文档。
avar 成功 => bvar 成功=>cvar
但不想太多层级 层级深了不好定位问题
--
👇
PrivateRookie: 看不太懂你这段代码想干什么, 但 match 是可以匹配元组的
简单的建议:
当然,个人习惯上,我会选择用and_then、or_else来写这段代码。具体请参考Result文档。
看不太懂你这段代码想干什么, 但 match 是可以匹配元组的
这不就是?吗?
不是语法糖?的问题
--
👇
Grobycn:
?
语法糖?
语法糖