提问人:Jaysmito Mukherjee 提问时间:7/30/2023 更新时间:7/30/2023 访问量:134
(void)Rust 的变量替代 [duplicate]
(void)variable alternative for Rust [duplicate]
问:
正如标题所说,是否有像 Rust 中的 C/C++ 这样的 (void) 变量的替代方案。
我有一个回调函数,看起来像这样:
fn on_window_event(window: &cgl_rs::Window, event: &cgl_rs::Event) -> bool {
// ... some code ...
false
}
在这里,我不使用变量,因此我收到未使用的警告。window
我知道我可以禁用警告,但我想知道我们是否可以以任何其他好的方式处理这个问题。
答:
3赞
Finomnis
7/30/2023
#1
在 Rust 中,名称开头的下划线 () 用于将变量标记为未使用。_
pub fn foo(a: i32, b: i32) -> i32 {
b * 2
}
$ cargo check
warning: unused variable: `a`
--> src\lib.rs:1:12
|
1 | pub fn foo(a: i32, b: i32) -> i32 {
| ^ help: if this is intentional, prefix it with an underscore: `_a`
|
= note: `#[warn(unused_variables)]` on by default
pub fn foo(_a: i32, b: i32) -> i32 {
b * 2
}
$ cargo check
- no warning -
评论
4赞
Ömer Erden
7/30/2023
我可能还要补充一点:如果您没有从显式名称中受益,则可以将该名称完全替换为 IMO OP 没有必要,因为类型指向它是_
Window
2赞
Finomnis
7/30/2023
@ÖmerErden 请注意,变量 with 不是一回事。 明确表示“立即销毁”,而表示“在范围结束时销毁”。_
_xxx
_
_xxx
1赞
Finomnis
7/30/2023
@ÖmerErden 看这里: play.rust-lang.org/...
0赞
Ömer Erden
7/30/2023
是的,这是一种预期行为,因为您仍然可以用于程序的其余部分(尽管 clippy 不喜欢这样),但令我惊讶的是,如果您将其声明为函数参数,则相同的行为不适用,例如:play.rust-lang.org/..._xxx
1赞
Ömer Erden
7/30/2023
我想它们不是一回事,意味着不绑定(并不总是意味着立即销毁)。对于您的示例,它是一个下降,但就我而言,该对象已经存在,它只是移动到函数作用域中,没有绑定到任何标识符,然后在作用域的末尾丢弃。_
评论
[[maybe_unused]]
_window
_xxx