struct SemanticDirection;
fn main() {}
warning: struct is never used: `SemanticDirection`
--> src/main.rs:1:1
|
1 | struct SemanticDirection;
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(dead_code)] on by default
对于任何严重的事情,我都会重新打开这些警告,但我只是在修改语言,这让我抓狂。
我尝试将
#[allow(dead_code)]
添加到我的代码中,但这不起作用。
禁用此警告的另一种方法是在标识符前面添加
_
:
struct _UnusedStruct {
_unused_field: i32,
}
fn main() {
let _unused_variable = 10;
}
这可能很有用,例如,对于 SDL 窗口:
let _window = video_subsystem.window("Rust SDL2 demo", 800, 600);
使用下划线作为前缀与使用单独的下划线作为名称不同。执行以下操作将立即破坏窗口,这不太可能是预期的行为。
let _ = video_subsystem.window("Rust SDL2 demo", 800, 600);
#![allow(dead_code)]
#![allow(unused_variables)]
使代码公开也会停止警告;您还需要将封闭的
mod
公开。
当您编写库时,这是有道理的:您的代码在内部“未使用”,因为它旨在由客户端代码使用。
另外:rust 提供四个级别的 lint(允许、警告、拒绝、禁止)。
https://doc.rust-lang.org/rustc/lints/levels.html#lint-levels
直接将以下内容放入文件的head中
#![allow(dead_code, unused_variables)]
dead_code
lint 检测未使用、未导出的项目。unused_variables
lint 检测未以任何方式使用的变量。更简单的方法是将以下内容放在文件的head中
#![allow(unused)]
参考:rust lint 列表
您可以将 #[allow(dead_code)] 属性添加到结构定义中,如下所示:
#[allow(dead_code)]
struct SemanticDirection;
或者您可以通过在文件顶部添加属性来禁用整个文件的警告,如下所示:
#![allow(dead_code)]
struct SemanticDirection;
但是这些属性只有在启用 dead_code lint 的情况下才有效。默认情况下,dead_code lint 在 Rust 中处于启用状态,但您可以通过将以下内容添加到代码顶部来禁用它:
#![deny(dead_code)]
这将禁用整个文件的 dead_code lint。
保持 dead_code lint 启用通常是一个好主意,因为它可以帮助您捕获代码中的错误并确保您不会在项目中引入不必要的代码。但是,当您只是尝试和尝试不同的东西时,它可能会很烦人,因此如果您想在这些情况下禁用它,这是可以理解的。
对于未使用的函数,您应该将其公开,但要小心。如果该结构不是公开的,那么您仍然会收到如下错误:
//this should be public also
struct A{
A{}
}
impl A {
pub fn new() -> A {
}
}
或者如果你不想公开,你应该放
#[allow(unused)]
您始终可以通过在变量名称中添加 (_) 来禁用未使用的变量/函数,如下所示:
let _variable = vec![0; 10];
在
*.rs
文件顶部:
#![allow(unused)] // FIXME
将其添加到第一行代码中
#![allow(unused_variables)]
所有警告解决方案:
https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html
使用功能
#[cfg(feature = "dead_code")]
注意:
"dead_code"
可以替换为任何单词。