gpt4 book ai didi

rust - Rust 中的 var 和 _var 有什么区别?

转载 作者:行者123 更新时间:2023-11-29 08:02:54 25 4
gpt4 key购买 nike

鉴于此:

fn main() {
let variable = [0; 15];
}

Rust 编译器产生这个警告:

= note: #[warn(unused_variables)] on by default
= note: to avoid this warning, consider using `_variable` instead

variable_variable 有什么区别?

最佳答案

区别在于前面有一个下划线,这导致 Rust 编译器允许它不被使用。它是裸下划线 _ 的一种命名版本,可用于忽略值。

但是,_name 的行为与_ 不同。纯下划线会立即删除值,而 _name 就像任何其他变量一样,并在范围末尾删除值。

它与普通下划线的行为不完全相同的示例:

struct Count(i32);

impl Drop for Count {
fn drop(&mut self) {
println!("dropping count {}", self.0);
}
}

fn main() {
{
let _a = Count(3);
let _ = Count(2);
let _c = Count(1);
}

{
let _a = Count(3);
let _b = Count(2);
let _c = Count(1);
}
}

打印以下内容(playground):

dropping count 2
dropping count 1
dropping count 3
dropping count 1
dropping count 2
dropping count 3

关于rust - Rust 中的 var 和 _var 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47664704/

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