假设有一个警告,例如path_statements,unused_variables.有没有办法忽略它的一个瞬间,而不将它们隔离成代码块或函数?
需要说明的是,代码中只有一个警告.我希望能够只安静警告,而不必针对特定警告进行特殊更改.并且在其他任何地方都没有这种安静的警告,甚至在同一个功能中也是如此.
使用GCC,可以按如下方式完成:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wformat"
/* Isolated region which doesn't raise warnings! */
this_would_raise_Wformat(args);
#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)
Rust具有相同的功能吗?
请注意,我正在询问如何安静警告的一般情况.我知道有办法解决未使用的var警告,例如.
Luk*_*odt 20
要使警告静音,您必须将allow(warning_type)属性添加到受影响的表达式或其任何父项.如果你只是想沉默的一个具体体现警告,您可以添加属性到表达/语句:
fn main() {
#[allow(unused_variables)]
let not_used = 27;
#[allow(path_statements)]
std::io::stdin;
println!("hi!");
}
Run Code Online (Sandbox Code Playgroud)
但是,向语句/表达式添加属性(与项目相反,如函数)的功能仍然有点破碎.特别是,在上面的代码中,该std::io::stdin行仍然会触发警告.您可以在此处阅读有关此功能的持续讨论.
通常,没有必要使用属性.通过使用语句的左侧可以使许多警告(例如unused_variables和unused_must_use)静音.通常,以下划线开头的任何变量都不会触发未使用的警告.let _ =
| 归档时间: |
|
| 查看次数: |
1329 次 |
| 最近记录: |