gpt4 book ai didi

rust - 如何抑制测试使用的功能的 "function is never used"警告?

转载 作者:行者123 更新时间:2023-11-29 08:20:59 27 4
gpt4 key购买 nike

我正在用 Rust 编写一个程序,并对其进行了一些测试。我为这些测试编写了一个辅助函数,但每当我使用 cargo build 进行构建时,它都会警告我该函数从未被使用过:

warning: function is never used: ... #[warn(dead_code)] on by default

如何将此函数标记为已使用,以免收到警告?

最佳答案

具体问题

How I can mark this function as used so as not to get the warnings?

Rust 编译器运行许多 lints警告您代码中可能存在的问题,dead_code lint 就是其中之一。它在代码完成时指出错误非常有用,但在早期阶段也可能令人讨厌。通常,这可以通过删除未使用的代码或标记公共(public)方法来解决。然而,所有的 lint 都可以通过 allowing 来关闭,并且你的错误消息(#[warn(dead_code)] 默认开启)包含了你所使用的 lint 的名称可以禁用。

#[allow(dead_code)]
fn my_unused_function() {}

测试的替代方案

I wrote a helper function for these tests, but whenever I build using cargo build it warns me that the function is never used.

这恰好是一种特殊情况,即仅用于测试的代码在实际可执行文件中并不需要,因此可能不应该包含在内。

为了有选择地禁用测试代码的编译,您可以使用 cfg attribute 相应地对其进行标记。使用 test 配置文件。

#[cfg(test)]
fn my_test_specific_function() {}

当以这种方式标记时,编译器知道在编译期间忽略该方法。这类似于 C 或 C++ 等其他语言中常用的 ifdef 用法,您告诉预处理器忽略包含的代码,除非定义了 TESTING

#ifdef TESTING
...
#endif

关于rust - 如何抑制测试使用的功能的 "function is never used"警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46699982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com