Function 编译器说函数从未被调用,但它被调用了

Function 编译器说函数从未被调用,但它被调用了,function,rust,Function,Rust,我有一个名为record的函数,它需要一个缓冲区来读取文件和结构。我在main中调用它,但Cargo告诉我从未调用过它 warning: unused `std::result::Result` that must be used --> src/main.rs:246:5 | 246 | record(buffer,&mut multithreading_robots); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

我有一个名为
record
的函数,它需要一个缓冲区来读取文件和结构。我在
main
中调用它,但Cargo告诉我从未调用过它

warning: unused `std::result::Result` that must be used
   --> src/main.rs:246:5
    |
246 |     record(buffer,&mut multithreading_robots);
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unused_must_use)]` on by default
    = note: this `Result` may be an `Err` variant, which should be handled

我档案的内容

5
5秒
F
10N
R

多亏了你的评论,我希望现在当编译器告诉你一些你不明白的事情时,它会更具可读性,发布编译器告诉你的内容比发布你的误解更好:

警告:未使用的`std::result::result`必须使用
-->src/main.rs:246:5
|
246记录(缓冲区和多线程);
|     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
=注意:`#[警告(未使用的_必须_使用)]`默认打开
=注意:此'Result'可能是'Err'变量,应进行处理
Cargo并不是告诉您,
record
未使用,而是告诉您,
record
的结果未使用:
result
has,这意味着当隐式忽略类型为
result
的值时,将生成警告(这里就是这种情况),因为它提供了一个有用的信号,它最多应该被显式抑制,而不是完全忽略

如果输入数据无法解析,
record
有多种可能失败的方法,但是忽略结果,您将无法知道
record
是否失败,更不用说如何失败了


最简单的解决方法是在调用结束时添加一个
,这样如果
记录
失败,错误将冒泡到
的顶部,此时将打印一条错误消息,程序将发出失败信号(退出代码为1,我不知道这是可以覆盖的).

欢迎来到堆栈溢出!很难回答你的问题,因为它没有包含一个。我们无法说出代码中存在哪些板条箱(及其版本)、类型、特征、字段等。如果您试图重现您的错误(如果可能的话),或者在全新的货运项目中,那么我们将更容易帮助您,然后您的问题将包括附加信息。您可以使用以下方法减少在此处发布的原始代码。谢谢请将您的问题添加到问题本身中,以及添加到存储库的链接。请将您的问题粘贴到您得到的准确和完整的错误中,这将帮助我们了解问题所在,以便我们能够提供最好的帮助。有时,试图解释错误消息是很棘手的,而这实际上是错误消息的另一个重要部分。请使用直接运行编译器的消息,而不是IDE生成的消息,IDE可能试图为您解释错误。