我刚看到拉取请求中的以下更改:
- .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.我错过了什么吗?
如何在不提前检查的情况下捕获零除法错误?
在python中,它可以使用try..except。
num1 = 3
num2 = 0
try:
num1 / num2
"""
I know that it should be check before divide but I want to do
without check in advance.
"""
except ZeroDivisionError:
print("Divided by zero")
Run Code Online (Sandbox Code Playgroud)
我知道检查除数更好。
但我正在寻找一种无需提前检查 Rust 的方法。
我该怎么做呢?
rust ×2