我刚看到拉取请求中的以下更改:
- .ok_or(Error::new(ErrorKind::Other, "Decode error"));
+ .ok_or_else(|| Error::new(ErrorKind::Other, "Decode error"));
Run Code Online (Sandbox Code Playgroud)
我所知道的唯一区别是:
ok_or我们已经创建Error的Error::new,并通过它变成一个适配器.ok_or_else我们已经传递了一个闭包,它会产生这样一个值,但是如果有Some数据则可能不会被调用Option.我错过了什么吗?
在Scala中,我可以getOrElse方便地从中获取默认值Option,Rust中的等效值是什么?
val threeOpt = Some(3)
val shouldBeThree = threeOpt.getOrElse(-1) // got 3
Run Code Online (Sandbox Code Playgroud)