相关疑难解决方法(0)

为什么我更喜欢`Option :: ok_or_else`而不是`Option :: ok_or`?

我刚看到拉取请求中的以下更改:

- .ok_or(Error::new(ErrorKind::Other, "Decode error"));
+ .ok_or_else(|| Error::new(ErrorKind::Other, "Decode error"));
Run Code Online (Sandbox Code Playgroud)

我所知道的唯一区别是:

  1. ok_or我们已经创建ErrorError::new,并通过它变成一个适配器.
  2. ok_or_else我们已经传递了一个闭包,它会产生这样一个值,但是如果有Some数据则可能不会被调用Option.

我错过了什么吗?

rust

7
推荐指数
2
解决办法
1551
查看次数

有没有办法在不提前检查的情况下捕获“被零除”错误?

如何在不提前检查的情况下捕获零除法错误?

在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
推荐指数
1
解决办法
180
查看次数

标签 统计

rust ×2